trisulrp 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/trplib.rb ADDED
@@ -0,0 +1,333 @@
1
+ # TRP Helper functions
2
+ #
3
+ # dependency = ruby_protobuf
4
+ #
5
+ # Akhil.M & Dhinesh.K (c) 2010 Unleash Networks
6
+
7
+ require 'openssl'
8
+ require 'socket'
9
+ require 'time'
10
+ require 'trp.pb'
11
+
12
+ module TRPLib
13
+
14
+ # dispatch and get trp response
15
+ def get_trp_response(trp_socket,trp_request)
16
+
17
+ outbuf=""
18
+ outbuf=trp_request.serialize_to_string
19
+ trp_socket.write([outbuf.length].pack("N*"))
20
+ trp_socket.write(outbuf)
21
+ inbuf = trp_socket.read(4)
22
+ buflenarr=inbuf.unpack("N*")
23
+ datalen=buflenarr[0]
24
+ dataarray=trp_socket.read(datalen)
25
+ resp =TRP::Message.new
26
+ resp.parse dataarray
27
+ yield resp if block_given?
28
+ return resp
29
+ end
30
+
31
+ def connect_trp(server,port,client_cert_file,client_key_file)
32
+ tcp_sock=TCPSocket.open(server,port)
33
+ ctx = OpenSSL::SSL::SSLContext.new
34
+ ctx.cert = OpenSSL::X509::Certificate.new(File.read(client_cert_file))
35
+ ctx.key = OpenSSL::PKey::RSA.new(File.read(client_key_file))
36
+ ssl_sock = OpenSSL::SSL::SSLSocket.new(tcp_sock, ctx)
37
+ ssl_sock.connect
38
+ yield ssl_sock if block_given?
39
+ return ssl_sock
40
+ end
41
+
42
+
43
+
44
+ # creates a counter item request message by filling in the
45
+ # protobuf
46
+ def mk_counter_item_request(guid,key,time_from,time_to)
47
+
48
+ # create a new command of type CounterItemRequest
49
+ msg =TRP::Message.new
50
+ msg.trp_command = TRP::Message::Command::COUNTER_ITEM_REQUEST
51
+ msg.counter_item_request =TRP:: CounterItemRequest.new
52
+ cir_msg=msg.counter_item_request
53
+
54
+ # fill in basic info
55
+ cir_msg.context =0
56
+ cir_msg.counter_group=guid
57
+ cir_msg.meter=0
58
+ cir_msg.key=key
59
+
60
+ # fill in time_interval
61
+ cir_msg.time_interval=TRP::TimeInterval.new
62
+ tint=cir_msg.time_interval
63
+ tint.from=TRP::Timestamp.new
64
+ tint.from.tv_sec=time_from.tv_sec
65
+ tint.from.tv_usec=0
66
+ tint.to=TRP::Timestamp.new
67
+ tint.to.tv_sec=time_to.tv_sec
68
+ tint.to.tv_usec=0
69
+ return msg
70
+ end
71
+
72
+ # print stats
73
+ def print_counter_item_response(resp_in)
74
+
75
+ resp=resp_in.counter_item_response
76
+ p "---------------------"
77
+ p "Counter Item Response"
78
+ p "---------------------"
79
+ p "Key = " + resp.stats.key
80
+ p "CounterGroup = " + resp.stats.counter_group
81
+ p "Context = #{ resp.stats.context}"
82
+ resp.stats.meters.each do |meter|
83
+ p "Meter = #{meter.meter }"
84
+ meter.values.each do |stats_tuple|
85
+ print Time.at(stats_tuple.ts.tv_sec)
86
+ print "#{stats_tuple.val }".rjust(16)
87
+ print "\n"
88
+ end
89
+ end
90
+
91
+ end
92
+
93
+ def mk_counter_group_info_request(guid)
94
+
95
+ # create a new command of type CounterGroupInfoRequest
96
+
97
+ msg =TRP::Message.new
98
+ msg.trp_command = TRP::Message::Command::COUNTER_GROUP_INFO_REQUEST
99
+ msg.counter_group_info_request =TRP:: CounterGroupInfoRequest.new
100
+ cgir_msg=msg.counter_group_info_request
101
+
102
+ # fill in basic info
103
+
104
+ cgir_msg.context =0
105
+ cgir_msg.counter_group=guid
106
+ return msg
107
+
108
+ end
109
+
110
+
111
+ def print_counter_group_info_response(resp_in)
112
+
113
+ resp=resp_in.counter_group_info_response
114
+
115
+ p "----------------------------"
116
+ p "Counter Group Info Response"
117
+ p "----------------------------"
118
+ p "Context = #{ resp.context}"
119
+ resp.group_details.each do |group_detail|
120
+ p "Name = #{ group_detail.name}"
121
+ p "Guid = " + group_detail.guid
122
+ p "Bucket Size = #{ group_detail.bucket_size}"
123
+ p Time.at(group_detail.time_interval.from.tv_sec)
124
+ p Time.at(group_detail.time_interval.to.tv_sec)
125
+ end
126
+ end
127
+
128
+
129
+
130
+ def mk_session_group_request()
131
+
132
+ # create a new command of type CounterItemRequest
133
+ msg =TRP::Message.new
134
+ msg.trp_command = TRP::Message::Command::SESSION_GROUP_REQUEST
135
+ msg.session_group_request =TRP:: SessionGroupRequest.new
136
+ sgr_msg=msg.session_group_request
137
+
138
+ # fill in basic info
139
+ sgr_msg.context =0
140
+ sgr_msg.maxitems=100
141
+ sgr_msg.tracker_id=1
142
+ sgr_msg.session_group="{99A78737-4B41-4387-8F31-8077DB917336}"
143
+
144
+ return msg
145
+
146
+ end
147
+
148
+ def print_session_group_response(resp_in)
149
+
150
+ resp=resp_in.session_group_response
151
+
152
+ p "----------------------------"
153
+ p "Session Group Response"
154
+ p "----------------------------"
155
+ p "Context = #{ resp.context}"
156
+ p "Session Group = " + resp.session_group
157
+ resp.session_keys.each do |session_key|
158
+ p "Session Key = " + session_key
159
+ end
160
+
161
+ end
162
+
163
+ # creates a counter group request message by filling in the
164
+ # protobuf
165
+
166
+ def mk_counter_group_request(guid,time_from,time_to,time_instant)
167
+
168
+ # create a new command of type CounterGroupRequest
169
+ msg =TRP::Message.new
170
+ msg.trp_command = TRP::Message::Command::COUNTER_GROUP_REQUEST
171
+ msg.counter_group_request =TRP:: CounterGroupRequest.new
172
+ cir_msg=msg.counter_group_request
173
+
174
+ # fill in basic info
175
+ cir_msg.context =0
176
+ cir_msg.counter_group=guid
177
+ cir_msg.meter=0
178
+ cir_msg.maxitems=20
179
+
180
+
181
+ # fill in time_interval
182
+ cir_msg.time_interval=TRP::TimeInterval.new
183
+ tint=cir_msg.time_interval
184
+ tint.from=TRP::Timestamp.new
185
+ tint.from.tv_sec=time_from.tv_sec
186
+ tint.from.tv_usec=0
187
+ tint.to=TRP::Timestamp.new
188
+ tint.to.tv_sec=time_to.tv_sec
189
+ tint.to.tv_usec=0
190
+
191
+ #fill in time_instant
192
+ #cir_msg.time_instant=TRP::Timestamp.new
193
+ #cir_msg.time_instant.tv_sec=time_instant.tv_sec+1000
194
+ #cir_msg.time_instant.tv_usec=0
195
+ return msg
196
+ end
197
+
198
+ # print response
199
+
200
+ def print_counter_group_response(resp_in)
201
+ resp=resp_in.counter_group_response
202
+ p "..........................."
203
+ p "Counter Group Response"
204
+ p "---------------------"
205
+ p "Context = #{ resp.context}"
206
+ p "CounterGroup = " + resp.counter_group
207
+ p "Meters= #{resp.meter}"
208
+ resp.keys.each do|key|
209
+ p "key => " + key.label
210
+ end
211
+ end
212
+
213
+ def mk_key_session_activity_request(key,time_from,time_to)
214
+
215
+ # create a new command of type CounterItemRequest
216
+ msg =TRP::Message.new
217
+ msg.trp_command = TRP::Message::Command::KEY_SESS_ACTIVITY_REQUEST
218
+ msg.key_session_activity_request =TRP::KeySessionActivityRequest.new
219
+ ksar_msg=msg.key_session_activity_request
220
+
221
+ # fill in basic info
222
+ ksar_msg.context =0
223
+ ksar_msg.maxitems=100
224
+ ksar_msg.session_group="{99A78737-4B41-4387-8F31-8077DB917336}"
225
+ ksar_msg.key= key
226
+ ksar_msg.duration_filter=9
227
+ ksar_msg.volume_filter=10
228
+
229
+ # fill in time_interval
230
+ ksar_msg.time_interval=TRP::TimeInterval.new
231
+ tint=ksar_msg.time_interval
232
+ tint.from=TRP::Timestamp.new
233
+ tint.from.tv_sec=time_from.tv_sec
234
+ tint.from.tv_usec=0
235
+ tint.to=TRP::Timestamp.new
236
+ tint.to.tv_sec=time_to.tv_sec
237
+ tint.to.tv_usec=0
238
+ return msg
239
+
240
+ end
241
+
242
+ def print_key_session_activity_response(resp_in)
243
+
244
+ resp=resp_in.key_session_activity_response
245
+
246
+ p "----------------------------"
247
+ p "Session Item Response"
248
+ p "----------------------------"
249
+ p "Context = #{ resp.context}"
250
+ p "Session Group = " + resp.session_group
251
+
252
+ end
253
+
254
+ # creates a session item request
255
+ # gets details about a sessionid
256
+ def mk_session_item_request(slice_id,session_id)
257
+
258
+ # create a new command of type SessionItemRequest
259
+ msg =TRP::Message.new
260
+ msg.trp_command = TRP::Message::Command::SESSION_ITEM_REQUEST
261
+ msg.session_item_request =TRP::SessionItemRequest.new
262
+ cir_msg=msg.session_item_request
263
+
264
+ # fill in basic info (guid = session id for flows)
265
+ cir_msg.context =0
266
+ cir_msg.session_group="{99A78737-4B41-4387-8F31-8077DB917336}"
267
+ cir_msg.session_id = TRP::SessionID.new
268
+ cir_msg.session_id.slice_id=slice_id
269
+ cir_msg.session_id.session_id=session_id
270
+
271
+ return msg
272
+ end
273
+
274
+ # prints a neat table of session activity
275
+ def print_session_item_response(resp_in)
276
+ resp=resp_in.session_item_response
277
+ print "#{resp.state} "
278
+ print "#{Time.at(resp.time_interval.from.tv_sec)} "
279
+ print "#{resp.time_interval.to.tv_sec-resp.time_interval.from.tv_sec} ".rjust(8)
280
+ print "#{resp.key1A.label}".ljust(28)
281
+ print "#{resp.key2A.label}".ljust(11)
282
+ print "#{resp.key1Z.label}".ljust(28)
283
+ print "#{resp.key2Z.label}".ljust(11)
284
+ print "#{resp.az_bytes}".rjust(10)
285
+ print "#{resp.za_bytes}".rjust(10)
286
+ print "\n"
287
+
288
+ end
289
+
290
+
291
+ def mk_session_tracker_request(time_from,time_to)
292
+
293
+ # create a new command of type CounterItemRequest
294
+ msg =TRP::Message.new
295
+ msg.trp_command = TRP::Message::Command::SESSION_TRACKER_REQUEST
296
+ msg.session_tracker_request =TRP:: SessionTrackerRequest.new
297
+ str_msg=msg.session_tracker_request
298
+
299
+ # fill in basic info
300
+ str_msg.context =0
301
+ str_msg.maxitems=100
302
+ str_msg.tracker_id=1
303
+ str_msg.session_group="{99A78737-4B41-4387-8F31-8077DB917336}"
304
+
305
+ # fill in time_interval
306
+ str_msg.time_interval=TRP::TimeInterval.new
307
+ tint=str_msg.time_interval
308
+ tint.from=TRP::Timestamp.new
309
+ tint.from.tv_sec=time_from.tv_sec
310
+ tint.from.tv_usec=0
311
+ tint.to=TRP::Timestamp.new
312
+ tint.to.tv_sec=time_to.tv_sec
313
+ tint.to.tv_usec=0
314
+ return msg
315
+
316
+ end
317
+
318
+ def print_session_tracker_response(resp_in)
319
+
320
+ resp=resp_in.session_tracker_response
321
+
322
+ p "----------------------------"
323
+ p "Session Tracker Response"
324
+ p "----------------------------"
325
+ p "Context = #{ resp.context}"
326
+ p "Session Group = " + resp.session_group
327
+
328
+ end
329
+
330
+
331
+
332
+
333
+ end
@@ -0,0 +1,71 @@
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number: 1 (0x1)
5
+ Signature Algorithm: sha1WithRSAEncryption
6
+ Issuer: C=IN, ST=TN, L=Gowrivakkam, O=Unleash Networks Trisul Demo , OU=Trisul Demo CA, CN=trisuldemo
7
+ Validity
8
+ Not Before: Aug 23 06:21:57 2010 GMT
9
+ Not After : Aug 23 06:21:57 2011 GMT
10
+ Subject: C=IN, ST=TN, O=Unleash Networks Trisul Demo , CN=trisul_client_00
11
+ Subject Public Key Info:
12
+ Public Key Algorithm: rsaEncryption
13
+ RSA Public Key: (1024 bit)
14
+ Modulus (1024 bit):
15
+ 00:b7:f8:3e:5b:e5:a6:87:b6:e3:5d:91:ab:f1:e3:
16
+ 60:74:78:d7:e7:39:51:c1:59:5f:29:42:e0:03:b6:
17
+ d5:f0:36:ee:94:8e:df:36:02:9a:a3:95:2a:b8:e3:
18
+ aa:7e:75:84:36:6a:67:b8:b8:c9:3d:cc:36:25:80:
19
+ f3:64:9f:77:8a:f7:37:c1:ec:ba:b5:28:6a:61:b3:
20
+ 54:26:a7:89:73:7b:47:8d:fc:67:00:da:35:91:62:
21
+ 1e:ca:1d:33:54:b9:d2:1c:e8:e2:dc:99:8e:25:dc:
22
+ 7b:de:21:e7:ce:a3:7e:68:07:ad:c9:3a:71:60:6d:
23
+ 45:f2:34:f2:77:1c:31:8a:31
24
+ Exponent: 65537 (0x10001)
25
+ X509v3 extensions:
26
+ X509v3 Basic Constraints:
27
+ CA:FALSE
28
+ Netscape Comment:
29
+ OpenSSL Generated Certificate For Trisul / Unsniff PKI
30
+ X509v3 Subject Key Identifier:
31
+ 22:2B:15:63:BD:55:2B:DB:3E:3B:10:08:E8:4B:53:ED:02:A5:83:FB
32
+ X509v3 Authority Key Identifier:
33
+ keyid:61:D3:24:23:7E:D2:64:30:54:DB:A9:21:E2:33:BF:46:E0:79:00:2D
34
+
35
+ Signature Algorithm: sha1WithRSAEncryption
36
+ 04:22:51:df:8b:fb:ed:b5:bf:5d:ad:54:e8:e4:9a:cc:63:1b:
37
+ 7a:e3:7e:d2:df:6d:79:44:5f:8f:ef:a0:35:05:2c:25:b8:4a:
38
+ 82:f1:21:54:3a:ca:5f:2b:cb:a6:d8:40:1f:16:db:96:10:35:
39
+ c8:c4:81:9c:b4:92:e4:0e:a9:76:ed:35:a1:f8:96:cf:65:53:
40
+ 5c:c1:73:59:a3:7e:36:80:64:c2:64:78:58:b9:da:46:ae:44:
41
+ be:5d:53:d5:37:67:9f:62:3b:53:57:71:9d:85:80:65:db:94:
42
+ e4:7c:8d:7f:35:e3:c1:1c:4d:9d:0d:43:f9:ea:3f:1b:b0:0b:
43
+ 73:fb:13:a8:20:fc:cb:56:ef:a4:45:42:a5:59:b0:46:57:16:
44
+ 17:15:d3:dd:75:05:03:08:08:7f:e8:44:31:4d:e8:51:bc:fc:
45
+ 44:05:e8:e9:49:aa:56:e2:ad:88:8b:92:cf:fc:90:21:8c:17:
46
+ 4c:1b:ca:55:b5:cd:fb:7f:c8:eb:ef:41:91:7f:c5:7f:47:2e:
47
+ 10:e8:0e:57:56:c4:1b:47:b3:66:cc:14:ea:de:4e:ab:b5:ad:
48
+ 55:55:b8:78:95:b2:c4:05:8a:9c:90:f2:d4:7a:e7:16:42:d5:
49
+ 0b:0f:45:af:83:85:37:bc:14:05:2e:10:b6:5e:58:e0:23:12:
50
+ bb:08:35:4c
51
+ -----BEGIN CERTIFICATE-----
52
+ MIIDcTCCAlmgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhjELMAkGA1UEBhMCSU4x
53
+ CzAJBgNVBAgTAlROMRQwEgYDVQQHEwtHb3dyaXZha2thbTEmMCQGA1UEChMdVW5s
54
+ ZWFzaCBOZXR3b3JrcyBUcmlzdWwgRGVtbyAxFzAVBgNVBAsTDlRyaXN1bCBEZW1v
55
+ IENBMRMwEQYDVQQDEwp0cmlzdWxkZW1vMB4XDTEwMDgyMzA2MjE1N1oXDTExMDgy
56
+ MzA2MjE1N1owXTELMAkGA1UEBhMCSU4xCzAJBgNVBAgTAlROMSYwJAYDVQQKEx1V
57
+ bmxlYXNoIE5ldHdvcmtzIFRyaXN1bCBEZW1vIDEZMBcGA1UEAwwQdHJpc3VsX2Ns
58
+ aWVudF8wMDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt/g+W+Wmh7bjXZGr
59
+ 8eNgdHjX5zlRwVlfKULgA7bV8DbulI7fNgKao5UquOOqfnWENmpnuLjJPcw2JYDz
60
+ ZJ93ivc3wey6tShqYbNUJqeJc3tHjfxnANo1kWIeyh0zVLnSHOji3JmOJdx73iHn
61
+ zqN+aAetyTpxYG1F8jTydxwxijECAwEAAaOBlTCBkjAJBgNVHRMEAjAAMEUGCWCG
62
+ SAGG+EIBDQQ4FjZPcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZSBGb3IgVHJp
63
+ c3VsIC8gVW5zbmlmZiBQS0kwHQYDVR0OBBYEFCIrFWO9VSvbPjsQCOhLU+0CpYP7
64
+ MB8GA1UdIwQYMBaAFGHTJCN+0mQwVNupIeIzv0bgeQAtMA0GCSqGSIb3DQEBBQUA
65
+ A4IBAQAEIlHfi/vttb9drVTo5JrMYxt6437S3215RF+P76A1BSwluEqC8SFUOspf
66
+ K8um2EAfFtuWEDXIxIGctJLkDql27TWh+JbPZVNcwXNZo342gGTCZHhYudpGrkS+
67
+ XVPVN2efYjtTV3GdhYBl25TkfI1/NePBHE2dDUP56j8bsAtz+xOoIPzLVu+kRUKl
68
+ WbBGVxYXFdPddQUDCAh/6EQxTehRvPxEBejpSapW4q2Ii5LP/JAhjBdMG8pVtc37
69
+ f8jr70GRf8V/Ry4Q6A5XVsQbR7NmzBTq3k6rta1VVbh4lbLEBYqckPLUeucWQtUL
70
+ D0Wvg4U3vBQFLhC2XljgIxK7CDVM
71
+ -----END CERTIFICATE-----
@@ -0,0 +1,18 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: DES-EDE3-CBC,7E940EA047D15229
4
+
5
+ 09BdQhvn3kS2Toh8qUKVSf+VOTGNFqNqlg4jI0XjAvPvv+AlMFpkd4Sp5NFomJjZ
6
+ PhPH9ShrJAeOZGI/LzC0wt3vBu4nADKWLAchJ393eRQOwQ2suMZVD9Kg6r6jmW+I
7
+ 1x7BN+ZnemaBLwmABM9LWdPSBlAqn3WurrrhrstWiv8oPs9ulY9kApwZohvMpM5W
8
+ JW0JbfdPFoO2DIhYdNwLbfGMfbaXzFkUGXztWq5g7xPsDRqP29beiC8uT8Z7xk66
9
+ Eluo9w2iNWC64KD3/wca59j5ljGs3l6O4PoyUfCcJ/rf57g08UWsYcr9seaU9aAV
10
+ lkKkntXwphjXgt8YfArzDXMCZaaA1ZdxtDR9KG9I+IXBbEXq4LFSDcZZbfjk9UKy
11
+ IT+IjFCxodFN6hkYZSFpAQWHDSj+VA5Jy64DoBLZZ+LMpwUObgidmhX2gLCjr8x8
12
+ Ur6Pbi27HGB2ByNXzQFjjOyc3ZVHotDiab2KMjU9MvoyNSKvDNnqSzleSQlEz3uA
13
+ hX0QJAncPnjT6Na2NGtWdP3i2BybIbHJCy9PHosSoWa/iqK8ZOohj2weuclzkNPS
14
+ X7nbYBabRgsk+VyVksDEEIxOL9QSeWeXRd5u+E9tyA4/9k6bMn9meXIA8JJZbHqQ
15
+ 9whz5JBEivzaMUXuS3SuYAN0qs5H0CPkY3o/Zz2vwauPD5Sgj4yZ8g3LFfWYCUXj
16
+ 3FTQbUdPZLbymdgrto4XYt99Bdt0PbfVAAecjxGM5mlRsvw0tVkU6rn2F6PFJPtd
17
+ OL8voxUdgGfXemPGokYhVnZfJF6ch9pqYPRO1seE3zg=
18
+ -----END RSA PRIVATE KEY-----
data/test/helper.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
11
+ require 'shoulda'
12
+
13
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
15
+ require 'trisulrp'
16
+
17
+ class Test::Unit::TestCase
18
+ end
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class TestTrisulrp < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
data/trisulrp.gemspec ADDED
@@ -0,0 +1,76 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{trisulrp}
8
+ s.version = "1.2.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["vivek"]
12
+ s.date = %q{2010-12-31}
13
+ s.description = %q{This gem deals about the trisul remote protocol}
14
+ s.email = %q{vivek_rajagopal@yahoo.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ "Gemfile",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "examples/strp.rb",
27
+ "lib/trisulrp.rb",
28
+ "lib/trp.pb.rb",
29
+ "lib/trp.proto",
30
+ "lib/trplib.rb",
31
+ "test/Demo_Client.crt",
32
+ "test/Demo_Client.key",
33
+ "test/helper.rb",
34
+ "test/test_trisulrp.rb",
35
+ "trisulrp.gemspec"
36
+ ]
37
+ s.homepage = %q{http://github.com/vivekrajan/trisulrp}
38
+ s.licenses = ["MIT"]
39
+ s.require_paths = ["lib"]
40
+ s.rubygems_version = %q{1.3.7}
41
+ s.summary = %q{trisul trp}
42
+ s.test_files = [
43
+ "examples/strp.rb",
44
+ "test/helper.rb",
45
+ "test/test_trisulrp.rb"
46
+ ]
47
+
48
+ if s.respond_to? :specification_version then
49
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
50
+ s.specification_version = 3
51
+
52
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
+ s.add_runtime_dependency(%q<ruby-protocol-buffers>, [">= 0.8.5"])
54
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
55
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
56
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
57
+ s.add_development_dependency(%q<rcov>, [">= 0"])
58
+ s.add_runtime_dependency(%q<ruby-protocol-buffers>, [">= 0.8.5"])
59
+ else
60
+ s.add_dependency(%q<ruby-protocol-buffers>, [">= 0.8.5"])
61
+ s.add_dependency(%q<shoulda>, [">= 0"])
62
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
63
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
64
+ s.add_dependency(%q<rcov>, [">= 0"])
65
+ s.add_dependency(%q<ruby-protocol-buffers>, [">= 0.8.5"])
66
+ end
67
+ else
68
+ s.add_dependency(%q<ruby-protocol-buffers>, [">= 0.8.5"])
69
+ s.add_dependency(%q<shoulda>, [">= 0"])
70
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
71
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
72
+ s.add_dependency(%q<rcov>, [">= 0"])
73
+ s.add_dependency(%q<ruby-protocol-buffers>, [">= 0.8.5"])
74
+ end
75
+ end
76
+
metadata ADDED
@@ -0,0 +1,176 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: trisulrp
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 2
9
+ - 2
10
+ version: 1.2.2
11
+ platform: ruby
12
+ authors:
13
+ - vivek
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-12-31 00:00:00 +05:30
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: ruby-protocol-buffers
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 53
29
+ segments:
30
+ - 0
31
+ - 8
32
+ - 5
33
+ version: 0.8.5
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: shoulda
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: bundler
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ hash: 23
59
+ segments:
60
+ - 1
61
+ - 0
62
+ - 0
63
+ version: 1.0.0
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: jeweler
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 7
75
+ segments:
76
+ - 1
77
+ - 5
78
+ - 2
79
+ version: 1.5.2
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: rcov
85
+ requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ hash: 3
91
+ segments:
92
+ - 0
93
+ version: "0"
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ name: ruby-protocol-buffers
99
+ requirement: &id006 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 53
105
+ segments:
106
+ - 0
107
+ - 8
108
+ - 5
109
+ version: 0.8.5
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: *id006
113
+ description: This gem deals about the trisul remote protocol
114
+ email: vivek_rajagopal@yahoo.com
115
+ executables: []
116
+
117
+ extensions: []
118
+
119
+ extra_rdoc_files:
120
+ - LICENSE.txt
121
+ - README.rdoc
122
+ files:
123
+ - .document
124
+ - Gemfile
125
+ - LICENSE.txt
126
+ - README.rdoc
127
+ - Rakefile
128
+ - VERSION
129
+ - examples/strp.rb
130
+ - lib/trisulrp.rb
131
+ - lib/trp.pb.rb
132
+ - lib/trp.proto
133
+ - lib/trplib.rb
134
+ - test/Demo_Client.crt
135
+ - test/Demo_Client.key
136
+ - test/helper.rb
137
+ - test/test_trisulrp.rb
138
+ - trisulrp.gemspec
139
+ has_rdoc: true
140
+ homepage: http://github.com/vivekrajan/trisulrp
141
+ licenses:
142
+ - MIT
143
+ post_install_message:
144
+ rdoc_options: []
145
+
146
+ require_paths:
147
+ - lib
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ hash: 3
154
+ segments:
155
+ - 0
156
+ version: "0"
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ hash: 3
163
+ segments:
164
+ - 0
165
+ version: "0"
166
+ requirements: []
167
+
168
+ rubyforge_project:
169
+ rubygems_version: 1.3.7
170
+ signing_key:
171
+ specification_version: 3
172
+ summary: trisul trp
173
+ test_files:
174
+ - examples/strp.rb
175
+ - test/helper.rb
176
+ - test/test_trisulrp.rb