io_shuten 0.1.0.dev6 → 0.1.0.dev7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/doc/IO_shuten/Base.html +78 -99
  2. data/doc/IO_shuten/Buffer.html +130 -150
  3. data/doc/IO_shuten/Errors/FileAccessError.html +4 -5
  4. data/doc/IO_shuten/Errors/FileNotFoundError.html +4 -5
  5. data/doc/IO_shuten/Errors/NodeExistsError.html +4 -5
  6. data/doc/IO_shuten/Errors/NodeNameError.html +4 -5
  7. data/doc/IO_shuten/Errors/NodeNotFoundError.html +4 -5
  8. data/doc/IO_shuten/Errors/NotYetImplemented.html +4 -5
  9. data/doc/IO_shuten/Errors.html +4 -5
  10. data/doc/IO_shuten/Memory.html +127 -147
  11. data/doc/IO_shuten/Mongo.html +6 -8
  12. data/doc/IO_shuten/Redis.html +164 -263
  13. data/doc/IO_shuten/Stores/BaseContainer.html +377 -0
  14. data/doc/IO_shuten/Stores/Mongo/Collection.html +4 -5
  15. data/doc/IO_shuten/Stores/Mongo/GridFS.html +4 -5
  16. data/doc/IO_shuten/Stores/Mongo.html +4 -5
  17. data/doc/IO_shuten/Stores/Redis/Container.html +778 -0
  18. data/doc/IO_shuten/Stores/Redis/KeyValue/Collection.html +504 -0
  19. data/doc/IO_shuten/Stores/Redis/KeyValue/Single.html +438 -0
  20. data/doc/IO_shuten/Stores/Redis/KeyValue.html +176 -7
  21. data/doc/IO_shuten/Stores/Redis/PubSub.html +140 -5
  22. data/doc/IO_shuten/Stores/Redis.html +7 -6
  23. data/doc/IO_shuten/Stores.html +6 -7
  24. data/doc/IO_shuten/Zmq.html +166 -0
  25. data/doc/IO_shuten.html +6 -7
  26. data/doc/_index.html +49 -6
  27. data/doc/class_list.html +1 -1
  28. data/doc/file.README.html +10 -3
  29. data/doc/index.html +10 -3
  30. data/doc/method_list.html +160 -24
  31. data/doc/top-level-namespace.html +2 -2
  32. data/io_shuten.gemspec +6 -1
  33. data/lib/io_shuten/buffer.rb +8 -6
  34. data/lib/io_shuten/memory.rb +8 -5
  35. data/lib/io_shuten/version.rb +1 -1
  36. data/spec/lib/buffer_spec.rb +43 -0
  37. data/spec/lib/memory_spec.rb +49 -0
  38. data/spec/lib/redis_spec.rb +15 -1
  39. metadata +49 -44
@@ -11,12 +11,15 @@ describe Memory do
11
11
  describe :new do
12
12
 
13
13
  context "without node_name" do
14
+
14
15
  it "raises Errors::NodeNameError" do
15
16
  expect { Memory.new }.to raise_error(Errors::NodeNameError)
16
17
  end
18
+
17
19
  end
18
20
 
19
21
  context "with node_name" do
22
+
20
23
  it "creates a new node with name as String" do
21
24
  node_name = "foo bar"
22
25
  iom = Memory.new(node_name)
@@ -41,19 +44,24 @@ describe Memory do
41
44
  expect { Memory.new(node_name) }.to_not raise_error
42
45
  expect { Memory.new(node_name) }.to raise_error(Errors::NodeExistsError)
43
46
  end
47
+
44
48
  end
45
49
 
46
50
  end
47
51
 
48
52
  describe "class based memory storage" do
53
+
49
54
  describe :purge_instances! do
55
+
50
56
  it "purges all instances" do
51
57
  Memory.purge_instances!
52
58
  Memory.instances.should have(0).items
53
59
  end
60
+
54
61
  end
55
62
 
56
63
  describe :instances do
64
+
57
65
  it "retrieves all @@instances" do
58
66
  Memory.purge_instances!
59
67
  nodes = %w[first second last]
@@ -63,9 +71,11 @@ describe Memory do
63
71
 
64
72
  Memory.instances.should have(3).items
65
73
  end
74
+
66
75
  end
67
76
 
68
77
  describe :delete_instance do
78
+
69
79
  before do
70
80
  Memory.purge_instances!
71
81
  @node_names = %w[first second last]
@@ -93,6 +103,7 @@ describe Memory do
93
103
  store
94
104
  end
95
105
  Memory.delete_instance(@node_names.first)
106
+
96
107
  Memory.instances.should_not include(@nodes.first)
97
108
  end
98
109
 
@@ -127,6 +138,7 @@ describe Memory do
127
138
  end
128
139
 
129
140
  describe :save_instances do
141
+
130
142
  before do
131
143
  @file_names2 = %w[file4 file5 file6]
132
144
  end
@@ -145,9 +157,21 @@ describe Memory do
145
157
 
146
158
  Memory.save_instances.should be_true
147
159
  end
160
+
161
+ it "writes only nodes with valid file names" do
162
+ @file_names2.each do |file_name|
163
+ node = Memory.new("#{@tmp_path}/#{file_name}")
164
+ node.<< "content of file: #{file_name}"
165
+ end
166
+ Memory.new("/invalid_file")
167
+
168
+ Memory.save_instances.should be_false
169
+ end
170
+
148
171
  end
149
172
 
150
173
  describe :load_instances do
174
+
151
175
  it "loads an array of files" do
152
176
  absolute_files = @file_names.inject([]) do |store, file_name|
153
177
  store << "#{@tmp_path}/#{file_name}"
@@ -165,6 +189,11 @@ describe Memory do
165
189
  Memory.load_instances @tmp_path
166
190
  Memory.pool.should have(3).items
167
191
  end
192
+
193
+ it "raises error if input is of wrong type" do
194
+ expect { Memory.load_instances :wrong_type }.to raise_error(ArgumentError)
195
+ end
196
+
168
197
  end
169
198
 
170
199
  end
@@ -187,12 +216,15 @@ describe Memory do
187
216
  context "with name only" do
188
217
 
189
218
  context "and node does not exist" do
219
+
190
220
  it "raises NodeNotFound error" do
191
221
  expect { Memory.open("foo bar") }.to raise_error(Errors::NodeNotFoundError)
192
222
  end
223
+
193
224
  end
194
225
 
195
226
  context "and node exists" do
227
+
196
228
  it "returns the requested node" do
197
229
  node_name = "foo bar"
198
230
  stored_obj = Memory.new(node_name)
@@ -209,10 +241,13 @@ describe Memory do
209
241
  node.should be_closed
210
242
  Memory.open(node_name).should_not be_closed
211
243
  end
244
+
212
245
  end
246
+
213
247
  end
214
248
 
215
249
  context "with name and block" do
250
+
216
251
  it "opens node, yields the block and closes node for writing" do
217
252
  str = "string set in block"
218
253
  origin = Memory.new(:blocktest)
@@ -244,6 +279,7 @@ describe Memory do
244
279
  end.to_not raise_error
245
280
  Memory.open(:blocktest).string.should match(other_str)
246
281
  end
282
+
247
283
  end
248
284
 
249
285
  end # open
@@ -257,6 +293,7 @@ describe Memory do
257
293
  end
258
294
 
259
295
  describe "StringIO method wrapper (for: #{RUBY_VERSION})" do
296
+
260
297
  m18 = %w[
261
298
  binmode bytes
262
299
  chars close close_read close_write closed? closed_read? closed_write?
@@ -302,9 +339,11 @@ describe Memory do
302
339
  Memory.new(:string_io_test).should respond_to(method_name)
303
340
  end
304
341
  end
342
+
305
343
  end
306
344
 
307
345
  describe "method stub with #not_yet_implemented! call" do
346
+
308
347
  it "raises NotYetImplemented" do
309
348
  iom = Memory.new(:not_implemented)
310
349
  iom.instance_eval do
@@ -319,6 +358,7 @@ describe Memory do
319
358
  expect { iom.not_implemented_method_b }.to raise_error(Errors::NotYetImplemented)
320
359
  expect { iom.not_implemented_method_c }.to raise_error(Errors::NotYetImplemented)
321
360
  end
361
+
322
362
  end
323
363
 
324
364
  describe "loading and writing" do
@@ -380,10 +420,12 @@ describe Memory do
380
420
  end
381
421
 
382
422
  context "file does not exist" do
423
+
383
424
  it "raises FileNotFoundError" do
384
425
  iom = Memory.new(@tmp_false_file)
385
426
  expect { iom.load_from_file }.to raise_error(Errors::FileNotFoundError)
386
427
  end
428
+
387
429
  end
388
430
 
389
431
  end
@@ -391,30 +433,37 @@ describe Memory do
391
433
  describe :save_to_file do
392
434
 
393
435
  context "file path accessible" do
436
+
394
437
  context "with container name as default" do
438
+
395
439
  it "writes container into the file" do
396
440
  iom = Memory.new(@tmp_save_file)
397
441
  iom.write "Test string"
398
442
  iom.save_to_file.should be_true
399
443
  end
444
+
400
445
  end
401
446
 
402
447
  context "with custom name" do
448
+
403
449
  it "writes container into the file" do
404
450
  iom = Memory.new(:different_name)
405
451
  iom.write "Test string"
406
452
  iom.save_to_file(@tmp_save_file).should be_true
407
453
  end
454
+
408
455
  end
409
456
 
410
457
  end
411
458
 
412
459
  context "path not accessible" do
460
+
413
461
  it "raises FileAccessError with corresponding reason" do
414
462
  iom = Memory.new(@denied_path)
415
463
  iom.write "Test string"
416
464
  expect { iom.save_to_file }.to raise_error(Errors::FileAccessError, /Reason/)
417
465
  end
466
+
418
467
  end
419
468
 
420
469
  end
@@ -35,11 +35,21 @@ describe IO_shuten::Redis do
35
35
  end
36
36
 
37
37
  it "fails, if backend is not known" do
38
- expect { IOR.new(:will_fail, :unknown_backend) }.to raise_error(ArgumentError)
38
+ expect { IOR.new(:will_fail, :unknown_backend, :unknown_type) }.to raise_error(ArgumentError)
39
39
  end
40
40
 
41
41
  it "fails, if type is not known" do
42
42
  expect { IOR.new(:will_fail, :key_value, :unknown_type) }.to raise_error(ArgumentError)
43
+ expect { IOR.new(:will_fail, :pub_sub, :unknown_type) }.to raise_error(ArgumentError)
44
+ end
45
+
46
+ it "fails if node already exists" do
47
+ IOR.new(:should_fail, :key_value, :single)
48
+ expect { IOR.new(:should_fail, :key_value, :single) }.to raise_error(Errors::NodeExistsError)
49
+ end
50
+
51
+ it "fails if node name is of wrong type" do
52
+ expect { IOR.new(1.23, :key_value, :single) }.to raise_error(Errors::NodeNameError)
43
53
  end
44
54
 
45
55
  end
@@ -62,6 +72,7 @@ describe IO_shuten::Redis do
62
72
  it "writes data" do
63
73
  data = %w[first_entry more_data last_entry]
64
74
  ior = IOR.new(:kvs_test_write, :key_value, :single)
75
+ ior.clear!
65
76
  data.each{ |line| ior.write line }
66
77
 
67
78
  IOR.redis.lrange(:kvs_test_write,0,-1).should == data
@@ -70,6 +81,7 @@ describe IO_shuten::Redis do
70
81
  it "reads data" do
71
82
  data = %w[first_entry more_data last_entry]
72
83
  ior = IOR.new(:kvs_test_read, :key_value, :single)
84
+ ior.clear!
73
85
  data.each{ |line| ior.write line }
74
86
 
75
87
  ior.read.should == data.join
@@ -82,6 +94,7 @@ describe IO_shuten::Redis do
82
94
  it "writes data" do
83
95
  data = %w[first_entry more_data last_entry]
84
96
  ior = IOR.new(:kvc_test_write, :key_value, :collection)
97
+ ior.clear!
85
98
  data.each{ |line| ior.write line }
86
99
 
87
100
  keys = IOR.redis.keys("kvc_test_write:*").sort
@@ -93,6 +106,7 @@ describe IO_shuten::Redis do
93
106
  it "reads data" do
94
107
  data = %w[first_entry more_data last_entry]
95
108
  ior = IOR.new(:kvc_test_read, :key_value, :collection)
109
+ ior.clear!
96
110
  data.each{ |line| ior.write line }
97
111
 
98
112
  ior.read.should == data.join
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io_shuten
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.dev6
4
+ version: 0.1.0.dev7
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: iobuffer
16
- requirement: &7717180 !ruby/object:Gem::Requirement
16
+ requirement: &10961640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *7717180
24
+ version_requirements: *10961640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: hiredis
27
- requirement: &7714860 !ruby/object:Gem::Requirement
27
+ requirement: &10959540 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.4.4
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *7714860
35
+ version_requirements: *10959540
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: redis
38
- requirement: &7713120 !ruby/object:Gem::Requirement
38
+ requirement: &10958320 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.2.2
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *7713120
46
+ version_requirements: *10958320
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: redis-namespace
49
- requirement: &7728400 !ruby/object:Gem::Requirement
49
+ requirement: &11303300 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *7728400
57
+ version_requirements: *11303300
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bson_ext
60
- requirement: &7727560 !ruby/object:Gem::Requirement
60
+ requirement: &11302160 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.5.2
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *7727560
68
+ version_requirements: *11302160
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mongo
71
- requirement: &7726400 !ruby/object:Gem::Requirement
71
+ requirement: &11299860 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.5.2
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *7726400
79
+ version_requirements: *11299860
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: ffi
82
- requirement: &7725120 !ruby/object:Gem::Requirement
82
+ requirement: &11298880 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *7725120
90
+ version_requirements: *11298880
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: ffi-rzmq
93
- requirement: &7724060 !ruby/object:Gem::Requirement
93
+ requirement: &11297940 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *7724060
101
+ version_requirements: *11297940
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rake
104
- requirement: &7737240 !ruby/object:Gem::Requirement
104
+ requirement: &11296720 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *7737240
112
+ version_requirements: *11296720
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: jeweler
115
- requirement: &7733580 !ruby/object:Gem::Requirement
115
+ requirement: &11311580 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *7733580
123
+ version_requirements: *11311580
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rspec
126
- requirement: &7729600 !ruby/object:Gem::Requirement
126
+ requirement: &11309880 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 2.8.0
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *7729600
134
+ version_requirements: *11309880
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: simplecov
137
- requirement: &7742140 !ruby/object:Gem::Requirement
137
+ requirement: &11308820 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *7742140
145
+ version_requirements: *11308820
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: simplecov-rcov
148
- requirement: &7740620 !ruby/object:Gem::Requirement
148
+ requirement: &11307580 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *7740620
156
+ version_requirements: *11307580
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: simplecov-csv
159
- requirement: &7739560 !ruby/object:Gem::Requirement
159
+ requirement: &11306040 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: '0'
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *7739560
167
+ version_requirements: *11306040
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: redcarpet
170
- requirement: &7738420 !ruby/object:Gem::Requirement
170
+ requirement: &11304820 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ! '>='
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: '0'
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *7738420
178
+ version_requirements: *11304820
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: yard
181
- requirement: &7753620 !ruby/object:Gem::Requirement
181
+ requirement: &11303880 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ! '>='
@@ -186,10 +186,10 @@ dependencies:
186
186
  version: '0'
187
187
  type: :development
188
188
  prerelease: false
189
- version_requirements: *7753620
189
+ version_requirements: *11303880
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: yard-blame
192
- requirement: &7752220 !ruby/object:Gem::Requirement
192
+ requirement: &11319020 !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
195
  - - ! '>='
@@ -197,10 +197,10 @@ dependencies:
197
197
  version: '0'
198
198
  type: :development
199
199
  prerelease: false
200
- version_requirements: *7752220
200
+ version_requirements: *11319020
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: pry
203
- requirement: &7751620 !ruby/object:Gem::Requirement
203
+ requirement: &11317600 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
206
  - - ! '>='
@@ -208,10 +208,10 @@ dependencies:
208
208
  version: '0'
209
209
  type: :development
210
210
  prerelease: false
211
- version_requirements: *7751620
211
+ version_requirements: *11317600
212
212
  - !ruby/object:Gem::Dependency
213
213
  name: alf
214
- requirement: &7750760 !ruby/object:Gem::Requirement
214
+ requirement: &11315320 !ruby/object:Gem::Requirement
215
215
  none: false
216
216
  requirements:
217
217
  - - ! '>='
@@ -219,10 +219,10 @@ dependencies:
219
219
  version: '0'
220
220
  type: :development
221
221
  prerelease: false
222
- version_requirements: *7750760
222
+ version_requirements: *11315320
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: fastercsv
225
- requirement: &7749820 !ruby/object:Gem::Requirement
225
+ requirement: &11313940 !ruby/object:Gem::Requirement
226
226
  none: false
227
227
  requirements:
228
228
  - - ! '>='
@@ -230,10 +230,10 @@ dependencies:
230
230
  version: '0'
231
231
  type: :development
232
232
  prerelease: false
233
- version_requirements: *7749820
233
+ version_requirements: *11313940
234
234
  - !ruby/object:Gem::Dependency
235
235
  name: viiite
236
- requirement: &7749120 !ruby/object:Gem::Requirement
236
+ requirement: &11313060 !ruby/object:Gem::Requirement
237
237
  none: false
238
238
  requirements:
239
239
  - - ! '>='
@@ -241,7 +241,7 @@ dependencies:
241
241
  version: '0'
242
242
  type: :development
243
243
  prerelease: false
244
- version_requirements: *7749120
244
+ version_requirements: *11313060
245
245
  description: IO::shuten – Use databases as IO handler like you would do with files
246
246
  and streams.
247
247
  email:
@@ -289,12 +289,17 @@ files:
289
289
  - doc/IO_shuten/Mongo.html
290
290
  - doc/IO_shuten/Redis.html
291
291
  - doc/IO_shuten/Stores.html
292
+ - doc/IO_shuten/Stores/BaseContainer.html
292
293
  - doc/IO_shuten/Stores/Mongo.html
293
294
  - doc/IO_shuten/Stores/Mongo/Collection.html
294
295
  - doc/IO_shuten/Stores/Mongo/GridFS.html
295
296
  - doc/IO_shuten/Stores/Redis.html
297
+ - doc/IO_shuten/Stores/Redis/Container.html
296
298
  - doc/IO_shuten/Stores/Redis/KeyValue.html
299
+ - doc/IO_shuten/Stores/Redis/KeyValue/Collection.html
300
+ - doc/IO_shuten/Stores/Redis/KeyValue/Single.html
297
301
  - doc/IO_shuten/Stores/Redis/PubSub.html
302
+ - doc/IO_shuten/Zmq.html
298
303
  - doc/_index.html
299
304
  - doc/class_list.html
300
305
  - doc/css/blame.css
@@ -362,7 +367,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
362
367
  version: '0'
363
368
  segments:
364
369
  - 0
365
- hash: 1748778252042175746
370
+ hash: 4518902614243252189
366
371
  required_rubygems_version: !ruby/object:Gem::Requirement
367
372
  none: false
368
373
  requirements: