stark 0.6.1 → 0.7.0
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/History.txt +10 -0
- data/Manifest.txt +3 -0
- data/README.txt +5 -1
- data/Rakefile +0 -2
- data/bin/stark +12 -6
- data/lib/stark/converters.rb +151 -0
- data/lib/stark/parser.rb +28 -0
- data/lib/stark/raw_parser.rb +7 -2
- data/lib/stark/ruby.rb +82 -91
- data/lib/stark/struct.rb +17 -0
- data/lib/stark/thrift.kpeg +1 -1
- data/lib/stark.rb +6 -9
- data/test/blah.thrift +5 -0
- data/test/gen-rb/profile_types.rb +67 -0
- data/test/gen-rb/user_storage.rb +315 -0
- data/test/include_blah.thrift +1 -0
- data/test/legacy_profile/profile_types.rb +67 -0
- data/test/legacy_profile/user_storage.rb +315 -0
- data/test/profile.thrift +30 -1
- data/test/test_client.rb +131 -1
- data/test/test_parser.rb +64 -0
- data/test/test_ruby.rb +27 -0
- data/test/test_server.rb +105 -1
- metadata +6 -2
data/test/test_server.rb
CHANGED
@@ -33,9 +33,10 @@ class TestServer < Test::Unit::TestCase
|
|
33
33
|
@last_list = nil
|
34
34
|
@last_status = nil
|
35
35
|
@n = n
|
36
|
+
@user_status = nil
|
36
37
|
end
|
37
38
|
|
38
|
-
attr_accessor :last_map, :last_list, :last_status
|
39
|
+
attr_accessor :last_map, :last_list, :last_status, :user_status
|
39
40
|
|
40
41
|
def store(obj)
|
41
42
|
@users[obj.uid] = obj
|
@@ -64,6 +65,19 @@ class TestServer < Test::Unit::TestCase
|
|
64
65
|
def make_bitcoins
|
65
66
|
sleep 2
|
66
67
|
end
|
68
|
+
|
69
|
+
def add(a,b)
|
70
|
+
a + b
|
71
|
+
end
|
72
|
+
|
73
|
+
def set_user_status(s)
|
74
|
+
@user_status = s
|
75
|
+
end
|
76
|
+
|
77
|
+
attr_accessor :user_relationship
|
78
|
+
def set_user_relationship(rel)
|
79
|
+
@user_relationship = rel
|
80
|
+
end
|
67
81
|
end
|
68
82
|
|
69
83
|
def test_store_and_retrieve
|
@@ -212,4 +226,94 @@ class TestServer < Test::Unit::TestCase
|
|
212
226
|
|
213
227
|
st.join
|
214
228
|
end
|
229
|
+
|
230
|
+
def test_2args
|
231
|
+
st = Thread.new do
|
232
|
+
@server.process @server_p, @server_p
|
233
|
+
end
|
234
|
+
|
235
|
+
assert_equal 7, @client.add(3, 4)
|
236
|
+
|
237
|
+
st.join
|
238
|
+
end
|
239
|
+
|
240
|
+
def test_read_struct_in_a_struct
|
241
|
+
st = Thread.new do
|
242
|
+
@server.process @server_p, @server_p
|
243
|
+
end
|
244
|
+
|
245
|
+
prof = @n::UserProfile.new 'uid' => 0, 'name' => 'root', 'blurb' => 'god'
|
246
|
+
stat = @n::UserStatus.new 'profile' => prof, 'active' => true
|
247
|
+
|
248
|
+
@handler.user_status = stat
|
249
|
+
|
250
|
+
status = @client.user_status
|
251
|
+
|
252
|
+
assert_equal true, status.active
|
253
|
+
|
254
|
+
prof = status.profile
|
255
|
+
|
256
|
+
assert_equal 0, prof.uid
|
257
|
+
assert_equal "root", prof.name
|
258
|
+
assert_equal "god", prof.blurb
|
259
|
+
|
260
|
+
st.join
|
261
|
+
end
|
262
|
+
|
263
|
+
def test_write_struct_in_a_struct
|
264
|
+
st = Thread.new do
|
265
|
+
@server.process @server_p, @server_p
|
266
|
+
end
|
267
|
+
|
268
|
+
prof = @n::UserProfile.new 'uid' => 0, 'name' => 'root', 'blurb' => 'god'
|
269
|
+
stat = @n::UserStatus.new 'profile' => prof, 'active' => true
|
270
|
+
|
271
|
+
@client.set_user_status stat
|
272
|
+
|
273
|
+
status = @handler.user_status
|
274
|
+
|
275
|
+
assert_equal true, status.active
|
276
|
+
|
277
|
+
prof = status.profile
|
278
|
+
|
279
|
+
assert_equal 0, prof.uid
|
280
|
+
assert_equal "root", prof.name
|
281
|
+
assert_equal "god", prof.blurb
|
282
|
+
|
283
|
+
st.join
|
284
|
+
end
|
285
|
+
|
286
|
+
def test_read_enum_in_struct
|
287
|
+
st = Thread.new do
|
288
|
+
@server.process @server_p, @server_p
|
289
|
+
end
|
290
|
+
|
291
|
+
stat = @n::UserRelationship.new 'user' => 0, 'status' => :ITS_COMPLICATED
|
292
|
+
|
293
|
+
@handler.user_relationship = stat
|
294
|
+
|
295
|
+
rel = @client.user_relationship
|
296
|
+
|
297
|
+
assert_equal 0, rel.user
|
298
|
+
assert_equal :ITS_COMPLICATED, rel.status
|
299
|
+
|
300
|
+
st.join
|
301
|
+
end
|
302
|
+
|
303
|
+
def test_write_enum_in_struct
|
304
|
+
st = Thread.new do
|
305
|
+
@server.process @server_p, @server_p
|
306
|
+
end
|
307
|
+
|
308
|
+
stat = @n::UserRelationship.new 'user' => 0, 'status' => :ITS_COMPLICATED
|
309
|
+
|
310
|
+
@client.set_user_relationship stat
|
311
|
+
|
312
|
+
rel = @handler.user_relationship
|
313
|
+
|
314
|
+
assert_equal 0, rel.user
|
315
|
+
assert_equal :ITS_COMPLICATED, rel.status
|
316
|
+
|
317
|
+
st.join
|
318
|
+
end
|
215
319
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thrift
|
@@ -91,9 +91,11 @@ files:
|
|
91
91
|
- lib/stark/thrift.kpeg
|
92
92
|
- stark.gemspec
|
93
93
|
- test/ThriftSpec.thrift
|
94
|
+
- test/blah.thrift
|
94
95
|
- test/gen-rb/profile_constants.rb
|
95
96
|
- test/gen-rb/profile_types.rb
|
96
97
|
- test/gen-rb/user_storage.rb
|
98
|
+
- test/include_blah.thrift
|
97
99
|
- test/leg.rb
|
98
100
|
- test/legacy_profile/profile_constants.rb
|
99
101
|
- test/legacy_profile/profile_types.rb
|
@@ -101,6 +103,7 @@ files:
|
|
101
103
|
- test/profile.thrift
|
102
104
|
- test/test_client.rb
|
103
105
|
- test/test_parser.rb
|
106
|
+
- test/test_ruby.rb
|
104
107
|
- test/test_server.rb
|
105
108
|
- .gemtest
|
106
109
|
homepage: http://github.com/evanphx/stark
|
@@ -132,4 +135,5 @@ summary: Optimized thrift bindings for ruby
|
|
132
135
|
test_files:
|
133
136
|
- test/test_client.rb
|
134
137
|
- test/test_parser.rb
|
138
|
+
- test/test_ruby.rb
|
135
139
|
- test/test_server.rb
|