nose 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdab6ac0cd36aff76527e1581daa256c7078b99aca5221d0744b9c0d8ab0fd7e
4
- data.tar.gz: 3972ad33202958c29b58fd26863f485a25526fe5369c82e47f8555b89d638cc6
3
+ metadata.gz: 9a4b183fb83685b5315c0a7e33444efdce66d4c86d315fef8be34a596e5600e6
4
+ data.tar.gz: 3f43ae8a9ced609ec0af23385115bb970e4b80e94ec1a26218778ca811fd18f7
5
5
  SHA512:
6
- metadata.gz: 9d21c1fbf046dfc271d232213b1d870b714182ccbd251976587d54f6024da5e88aba65ef7a891d6ab0b6e01af33d82f0e30da0d41fdae9ee3c126da4c54d5824
7
- data.tar.gz: 416fdc8224f4446a14491806a8907c8a8381009b4315f615d994d87dd4b1f28bd8e9f60d1b04e5c6b72e53518b9c217d8c9596be99337e4082b05d5a142c24c8
6
+ metadata.gz: 5b152b3d741f9c0c43eea0ff7fb57eda440cf1d1d1fe919a50f2b00774dadfa14817acc07ebd3af37399c21491cdce8cae938ce99343c317b6eaa6d2815f8121
7
+ data.tar.gz: 368be32a28b189bd0cf1c77a4444a6a46e727794510a5a8da5364b4028607910e17f0926a9b911d93ae79499b073b1bcb93a2ed6da6678cdb3e91f596e24ae9e
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'sorted_set'
3
4
  require 'cassandra'
4
5
  require 'zlib'
5
6
 
@@ -24,7 +24,9 @@ module NoSE
24
24
  # Save data when the object is destroyed
25
25
  def self.finalize(index_data, file)
26
26
  proc do
27
- Marshal.dump(index_data, File.open(file, 'w'))
27
+ if !file.nil?
28
+ Marshal.dump(index_data, File.open(file, 'w'))
29
+ end
28
30
  end
29
31
  end
30
32
 
data/lib/nose/cost.rb CHANGED
@@ -13,7 +13,7 @@ module NoSE
13
13
  end
14
14
 
15
15
  # The cost of filtering intermediate results
16
- # @return [Fixnum]
16
+ # @return [Integer]
17
17
  def filter_cost(_step)
18
18
  # Assume this has no cost and the cost is captured in the fact that we
19
19
  # have to retrieve more data earlier. All this does is skip records.
@@ -21,14 +21,14 @@ module NoSE
21
21
  end
22
22
 
23
23
  # The cost of limiting a result set
24
- # @return [Fixnum]
24
+ # @return [Integer]
25
25
  def limit_cost(_step)
26
26
  # This is basically free since we just discard data
27
27
  0
28
28
  end
29
29
 
30
30
  # The cost of sorting a set of results
31
- # @return [Fixnum]
31
+ # @return [Integer]
32
32
  def sort_cost(_step)
33
33
  # TODO: Find some estimate of sort cost
34
34
  # This could be partially captured by the fact that sort + limit
@@ -37,25 +37,25 @@ module NoSE
37
37
  end
38
38
 
39
39
  # The cost of performing a lookup via an index
40
- # @return [Fixnum]
40
+ # @return [Integer]
41
41
  def index_lookup_cost(_step)
42
42
  fail NotImplementedError, 'Must be implemented in a subclass'
43
43
  end
44
44
 
45
45
  # The cost of performing a deletion from an index
46
- # @return [Fixnum]
46
+ # @return [Integer]
47
47
  def delete_cost(_step)
48
48
  fail NotImplementedError, 'Must be implemented in a subclass'
49
49
  end
50
50
 
51
51
  # The cost of performing an insert into an index
52
- # @return [Fixnum]
52
+ # @return [Integer]
53
53
  def insert_cost(_step)
54
54
  fail NotImplementedError, 'Must be implemented in a subclass'
55
55
  end
56
56
 
57
57
  # This is here for debugging purposes because we need a cost
58
- # @return [Fixnum]
58
+ # @return [Integer]
59
59
  def pruned_cost(_step)
60
60
  0
61
61
  end
@@ -35,7 +35,7 @@ module NoSE
35
35
  alias eql? ==
36
36
 
37
37
  # The hash is based on the name of the entity and its fields
38
- # @return [Fixnum]
38
+ # @return [Integer]
39
39
  def hash
40
40
  @hash ||= @name.hash
41
41
  end
@@ -34,7 +34,7 @@ module NoSE
34
34
  alias eql? ==
35
35
 
36
36
  # Hash by entity and name
37
- # @return [Fixnum]
37
+ # @return [Integer]
38
38
  def hash
39
39
  @hash ||= id.hash
40
40
  end
@@ -104,8 +104,20 @@ module NoSE
104
104
  method_name = child_class.name.sub(method_regex, '\1')
105
105
  EntityDSL.send :define_method, method_name,
106
106
  (proc do |*args|
107
- send(:instance_variable_get, :@entity).send \
108
- :<<, child_class.new(*args)
107
+ entity = send :instance_variable_get, :@entity
108
+
109
+ # XXX This is necessary since passing a hash of
110
+ # keyword arguments as the last argument is
111
+ # now deprecated
112
+ if args.last.is_a? Hash
113
+ hash_args = args.last
114
+ args.pop
115
+ else
116
+ hash_args = {}
117
+ end
118
+
119
+ field = child_class.new(*args, **hash_args)
120
+ entity.send :<<, field
109
121
  end)
110
122
  end
111
123
  private_class_method :add_field_method
@@ -122,13 +134,13 @@ module NoSE
122
134
  end
123
135
 
124
136
  # Parse an Integer from the provided parameter
125
- # @return [Fixnum]
137
+ # @return [Integer]
126
138
  def self.value_from_string(string)
127
139
  string.to_i
128
140
  end
129
141
 
130
142
  # Random numbers up to the given size
131
- # @return [Fixnum]
143
+ # @return [Integer]
132
144
  def random_value
133
145
  rand(@cardinality)
134
146
  end
@@ -167,8 +179,7 @@ module NoSE
167
179
 
168
180
  # Field holding a float
169
181
  class FloatField < Field
170
- # Any Fixnum is a valid float
171
- TYPE = Fixnum
182
+ TYPE = Float
172
183
 
173
184
  def initialize(name, **options)
174
185
  super(name, 8, **options)
@@ -284,7 +295,7 @@ module NoSE
284
295
 
285
296
  # The number of entities associated with the foreign key,
286
297
  # or a manually set cardinality
287
- # @return [Fixnum]
298
+ # @return [Integer]
288
299
  def cardinality
289
300
  @entity.count || super
290
301
  end
@@ -173,7 +173,7 @@ module NoSE
173
173
  end
174
174
 
175
175
  # The estimated cost of executing this plan
176
- # @return [Fixnum]
176
+ # @return [Integer]
177
177
  def cost
178
178
  costs = @steps.map(&:cost) + @update_steps.map(&:cost)
179
179
  costs += @query_plans.map(&:steps).flatten.map(&:cost)
@@ -171,7 +171,7 @@ module NoSE
171
171
  end
172
172
 
173
173
  # The weight of this query for a given workload
174
- # @return [Fixnum]
174
+ # @return [Integer]
175
175
  def weight
176
176
  return 1 if @workload.nil?
177
177
 
@@ -50,7 +50,7 @@ module NoSE
50
50
  end
51
51
 
52
52
  # The weight of this query for a given workload
53
- # @return [Fixnum]
53
+ # @return [Integer]
54
54
  def weight
55
55
  return 1 if @workload.nil?
56
56
 
@@ -145,13 +145,13 @@ module NoSE
145
145
  end
146
146
 
147
147
  # The cost of performing the update on this index
148
- # @return [Fixnum]
148
+ # @return [Integer]
149
149
  def update_cost
150
150
  @update_steps.sum_by(&:cost)
151
151
  end
152
152
 
153
153
  # The cost is the sum of all the query costs plus the update costs
154
- # @return [Fixnum]
154
+ # @return [Integer]
155
155
  def cost
156
156
  @query_plans.sum_by(&:cost) + update_cost
157
157
  end
data/lib/nose/plans.rb CHANGED
@@ -72,7 +72,7 @@ module NoSE
72
72
  end
73
73
 
74
74
  # Calculate the cost of executing this step in the plan
75
- # @return [Fixnum]
75
+ # @return [Integer]
76
76
  def calculate_cost(cost_model)
77
77
  @cost = cost_model.method((subtype_name + '_cost').to_sym).call self
78
78
  end
data/lib/nose/random.rb CHANGED
@@ -353,7 +353,7 @@ module NoSE
353
353
  end
354
354
 
355
355
  # Return the next valid random number
356
- # @return [Fixnum]
356
+ # @return [Integer]
357
357
  def rand
358
358
  if @valid
359
359
  @valid = false
@@ -367,7 +367,7 @@ module NoSE
367
367
  end
368
368
 
369
369
  # Return a random number for the given distribution
370
- # @return [Array<Fixnum>]
370
+ # @return [Array<Integer>]
371
371
  def self.gaussian(mean, stddev)
372
372
  theta = 2 * Math::PI * rand
373
373
  rho = Math.sqrt(-2 * Math.log(1 - rand))
@@ -251,7 +251,7 @@ module NoSE
251
251
  property :cardinality, exec_context: :decorator
252
252
 
253
253
  # The estimated hash cardinality at this step in the plan
254
- # @return [Fixnum]
254
+ # @return [Integer]
255
255
  def hash_cardinality
256
256
  state = represented.instance_variable_get(:@state)
257
257
  state.hash_cardinality if state.is_a?(Plans::QueryState)
@@ -326,7 +326,7 @@ module NoSE
326
326
  property :type, exec_context: :decorator
327
327
 
328
328
  # The estimated cardinality of entities being updated
329
- # @return [Fixnum]
329
+ # @return [Integer]
330
330
  def cardinality
331
331
  state = represented.instance_variable_get(:@state)
332
332
  state.cardinality unless state.nil?
data/lib/nose/util.rb CHANGED
@@ -166,7 +166,7 @@ end
166
166
  # Simple helper class to facilitate cardinality estimates
167
167
  class Cardinality
168
168
  # Update the cardinality based on filtering implicit to the index
169
- # @return [Fixnum]
169
+ # @return [Integer]
170
170
  def self.filter(cardinality, eq_filter, range_filter)
171
171
  filtered = (range_filter.nil? ? 1.0 : 0.1) * cardinality
172
172
  filtered *= eq_filter.map do |field|
data/models/eac.rb CHANGED
@@ -34,11 +34,11 @@ NoSE::Model.new do
34
34
  end) * 5_000
35
35
 
36
36
  HasOne 'player', 'sessions',
37
- 'Session' => 'Player'
37
+ {'Session' => 'Player'}
38
38
 
39
39
  HasOne 'server', 'sessions',
40
- 'Session' => 'Server'
40
+ {'Session' => 'Server'}
41
41
 
42
42
  HasOne 'session', 'states',
43
- 'PlayerState' => 'Session'
43
+ {'PlayerState' => 'Session'}
44
44
  end
data/models/ebay.rb CHANGED
@@ -26,7 +26,7 @@ NoSE::Model.new do
26
26
  end) * 10_000
27
27
 
28
28
  HasOne 'user', 'likes',
29
- 'likes' => 'users'
29
+ {'likes' => 'users'}
30
30
  HasOne 'item', 'likes',
31
- 'likes' => 'items'
31
+ {'likes' => 'items'}
32
32
  end
data/models/rubis.rb CHANGED
@@ -64,34 +64,34 @@ NoSE::Model.new do
64
64
  end) * 40_000
65
65
 
66
66
  HasOne 'region', 'users',
67
- 'users' => 'regions'
67
+ {'users' => 'regions'}
68
68
 
69
69
  HasOne 'seller', 'items_sold',
70
- 'items' => 'users'
70
+ {'items' => 'users'}
71
71
 
72
72
  HasOne 'category', 'items',
73
- 'items' => 'categories'
73
+ {'items' => 'categories'}
74
74
 
75
75
  HasOne 'user', 'bids',
76
- 'bids' => 'users'
76
+ {'bids' => 'users'}
77
77
 
78
78
  HasOne 'item', 'bids',
79
- 'bids' => 'items'
79
+ {'bids' => 'items'}
80
80
 
81
81
  HasOne 'from_user', 'comments_sent',
82
- 'comments' => 'users'
82
+ {'comments' => 'users'}
83
83
 
84
84
  HasOne 'to_user', 'comments_received',
85
- 'comments' => 'users'
85
+ {'comments' => 'users'}
86
86
 
87
87
  HasOne 'item', 'comments',
88
- 'comments' => 'items'
88
+ {'comments' => 'items'}
89
89
 
90
90
  HasOne 'buyer', 'bought_now',
91
- 'buynow' => 'users'
91
+ {'buynow' => 'users'}
92
92
 
93
93
  HasOne 'item', 'bought_now',
94
- 'buynow' => 'items'
94
+ {'buynow' => 'items'}
95
95
  end
96
96
 
97
97
  # rubocop:enable all
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nose
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Mior
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-28 00:00:00.000000000 Z
11
+ date: 2024-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faker
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.3.0
19
+ version: 2.16.0
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
22
  version: 1.7.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 2.3.0
29
+ version: 2.16.0
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.7.0
@@ -104,7 +104,7 @@ dependencies:
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: 1.17.0
107
+ version: 1.20.1
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: 1.11.0
@@ -114,7 +114,7 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.17.0
117
+ version: 1.20.1
118
118
  - - ">="
119
119
  - !ruby/object:Gem::Version
120
120
  version: 1.11.0
@@ -122,36 +122,22 @@ dependencies:
122
122
  name: parslet
123
123
  requirement: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: 1.8.0
128
125
  - - ">="
129
126
  - !ruby/object:Gem::Version
130
- version: 1.8.0
127
+ version: '1.8'
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.1'
131
131
  type: :runtime
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: 1.8.0
138
135
  - - ">="
139
136
  - !ruby/object:Gem::Version
140
- version: 1.8.0
141
- - !ruby/object:Gem::Dependency
142
- name: pg
143
- requirement: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: 0.20.0
148
- type: :runtime
149
- prerelease: false
150
- version_requirements: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - "~>"
137
+ version: '1.8'
138
+ - - "<"
153
139
  - !ruby/object:Gem::Version
154
- version: 0.20.0
140
+ version: '2.1'
155
141
  - !ruby/object:Gem::Dependency
156
142
  name: pickup
157
143
  requirement: !ruby/object:Gem::Requirement
@@ -172,14 +158,14 @@ dependencies:
172
158
  requirements:
173
159
  - - "~>"
174
160
  - !ruby/object:Gem::Version
175
- version: 0.12.2
161
+ version: 0.13.1
176
162
  type: :runtime
177
163
  prerelease: false
178
164
  version_requirements: !ruby/object:Gem::Requirement
179
165
  requirements:
180
166
  - - "~>"
181
167
  - !ruby/object:Gem::Version
182
- version: 0.12.2
168
+ version: 0.13.1
183
169
  - !ruby/object:Gem::Dependency
184
170
  name: rake
185
171
  requirement: !ruby/object:Gem::Requirement
@@ -206,7 +192,7 @@ dependencies:
206
192
  requirements:
207
193
  - - "~>"
208
194
  - !ruby/object:Gem::Version
209
- version: 3.0.0
195
+ version: 3.2.0
210
196
  - - ">="
211
197
  - !ruby/object:Gem::Version
212
198
  version: 3.0.0
@@ -216,7 +202,7 @@ dependencies:
216
202
  requirements:
217
203
  - - "~>"
218
204
  - !ruby/object:Gem::Version
219
- version: 3.0.0
205
+ version: 3.2.0
220
206
  - - ">="
221
207
  - !ruby/object:Gem::Version
222
208
  version: 3.0.0
@@ -266,7 +252,7 @@ dependencies:
266
252
  requirements:
267
253
  - - "~>"
268
254
  - !ruby/object:Gem::Version
269
- version: 5.22.0
255
+ version: 5.41.0
270
256
  - - ">="
271
257
  - !ruby/object:Gem::Version
272
258
  version: 4.46.0
@@ -276,37 +262,51 @@ dependencies:
276
262
  requirements:
277
263
  - - "~>"
278
264
  - !ruby/object:Gem::Version
279
- version: 5.22.0
265
+ version: 5.41.0
280
266
  - - ">="
281
267
  - !ruby/object:Gem::Version
282
268
  version: 4.46.0
283
269
  - !ruby/object:Gem::Dependency
284
270
  name: smarter_csv
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - '='
274
+ - !ruby/object:Gem::Version
275
+ version: 1.10.2
276
+ type: :runtime
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - '='
281
+ - !ruby/object:Gem::Version
282
+ version: 1.10.2
283
+ - !ruby/object:Gem::Dependency
284
+ name: sorted_set
285
285
  requirement: !ruby/object:Gem::Requirement
286
286
  requirements:
287
287
  - - "~>"
288
288
  - !ruby/object:Gem::Version
289
- version: 1.2.6
289
+ version: '1.0'
290
290
  - - ">="
291
291
  - !ruby/object:Gem::Version
292
- version: 1.1.0
292
+ version: 1.0.3
293
293
  type: :runtime
294
294
  prerelease: false
295
295
  version_requirements: !ruby/object:Gem::Requirement
296
296
  requirements:
297
297
  - - "~>"
298
298
  - !ruby/object:Gem::Version
299
- version: 1.2.6
299
+ version: '1.0'
300
300
  - - ">="
301
301
  - !ruby/object:Gem::Version
302
- version: 1.1.0
302
+ version: 1.0.3
303
303
  - !ruby/object:Gem::Dependency
304
304
  name: cassandra-driver
305
305
  requirement: !ruby/object:Gem::Requirement
306
306
  requirements:
307
307
  - - "~>"
308
308
  - !ruby/object:Gem::Version
309
- version: 3.2.3
309
+ version: 3.2.5
310
310
  - - ">="
311
311
  - !ruby/object:Gem::Version
312
312
  version: 3.1.0
@@ -316,7 +316,7 @@ dependencies:
316
316
  requirements:
317
317
  - - "~>"
318
318
  - !ruby/object:Gem::Version
319
- version: 3.2.3
319
+ version: 3.2.5
320
320
  - - ">="
321
321
  - !ruby/object:Gem::Version
322
322
  version: 3.1.0
@@ -324,98 +324,92 @@ dependencies:
324
324
  name: mongo
325
325
  requirement: !ruby/object:Gem::Requirement
326
326
  requirements:
327
- - - "~>"
328
- - !ruby/object:Gem::Version
329
- version: 2.10.0
330
327
  - - ">="
331
328
  - !ruby/object:Gem::Version
332
- version: 2.4.0
329
+ version: '2.14'
330
+ - - "<"
331
+ - !ruby/object:Gem::Version
332
+ version: '2.20'
333
333
  type: :runtime
334
334
  prerelease: false
335
335
  version_requirements: !ruby/object:Gem::Requirement
336
336
  requirements:
337
- - - "~>"
338
- - !ruby/object:Gem::Version
339
- version: 2.10.0
340
337
  - - ">="
341
338
  - !ruby/object:Gem::Version
342
- version: 2.4.0
339
+ version: '2.14'
340
+ - - "<"
341
+ - !ruby/object:Gem::Version
342
+ version: '2.20'
343
343
  - !ruby/object:Gem::Dependency
344
344
  name: fakefs
345
345
  requirement: !ruby/object:Gem::Requirement
346
346
  requirements:
347
347
  - - "~>"
348
348
  - !ruby/object:Gem::Version
349
- version: 0.20.0
349
+ version: 2.5.0
350
350
  type: :development
351
351
  prerelease: false
352
352
  version_requirements: !ruby/object:Gem::Requirement
353
353
  requirements:
354
354
  - - "~>"
355
355
  - !ruby/object:Gem::Version
356
- version: 0.20.0
356
+ version: 2.5.0
357
357
  - !ruby/object:Gem::Dependency
358
358
  name: memory_profiler
359
359
  requirement: !ruby/object:Gem::Requirement
360
360
  requirements:
361
361
  - - "~>"
362
362
  - !ruby/object:Gem::Version
363
- version: 0.9.7
363
+ version: 1.0.0
364
364
  type: :development
365
365
  prerelease: false
366
366
  version_requirements: !ruby/object:Gem::Requirement
367
367
  requirements:
368
368
  - - "~>"
369
369
  - !ruby/object:Gem::Version
370
- version: 0.9.7
370
+ version: 1.0.0
371
371
  - !ruby/object:Gem::Dependency
372
372
  name: pry-byebug
373
373
  requirement: !ruby/object:Gem::Requirement
374
374
  requirements:
375
375
  - - "~>"
376
376
  - !ruby/object:Gem::Version
377
- version: 3.7.0
378
- - - ">="
379
- - !ruby/object:Gem::Version
380
- version: 3.4.0
377
+ version: 3.9.0
381
378
  type: :development
382
379
  prerelease: false
383
380
  version_requirements: !ruby/object:Gem::Requirement
384
381
  requirements:
385
382
  - - "~>"
386
383
  - !ruby/object:Gem::Version
387
- version: 3.7.0
388
- - - ">="
389
- - !ruby/object:Gem::Version
390
- version: 3.4.0
384
+ version: 3.9.0
391
385
  - !ruby/object:Gem::Dependency
392
386
  name: pry-doc
393
387
  requirement: !ruby/object:Gem::Requirement
394
388
  requirements:
395
389
  - - "~>"
396
390
  - !ruby/object:Gem::Version
397
- version: 1.0.0
391
+ version: 1.1.0
398
392
  type: :development
399
393
  prerelease: false
400
394
  version_requirements: !ruby/object:Gem::Requirement
401
395
  requirements:
402
396
  - - "~>"
403
397
  - !ruby/object:Gem::Version
404
- version: 1.0.0
398
+ version: 1.1.0
405
399
  - !ruby/object:Gem::Dependency
406
400
  name: pry-stack_explorer
407
401
  requirement: !ruby/object:Gem::Requirement
408
402
  requirements:
409
403
  - - "~>"
410
404
  - !ruby/object:Gem::Version
411
- version: 0.4.9.2
405
+ version: 0.4.11
412
406
  type: :development
413
407
  prerelease: false
414
408
  version_requirements: !ruby/object:Gem::Requirement
415
409
  requirements:
416
410
  - - "~>"
417
411
  - !ruby/object:Gem::Version
418
- version: 0.4.9.2
412
+ version: 0.4.11
419
413
  - !ruby/object:Gem::Dependency
420
414
  name: ronn
421
415
  requirement: !ruby/object:Gem::Requirement
@@ -436,40 +430,28 @@ dependencies:
436
430
  requirements:
437
431
  - - "~>"
438
432
  - !ruby/object:Gem::Version
439
- version: 3.8.0
440
- - - ">="
441
- - !ruby/object:Gem::Version
442
- version: 3.8.0
433
+ version: 3.10.0
443
434
  type: :development
444
435
  prerelease: false
445
436
  version_requirements: !ruby/object:Gem::Requirement
446
437
  requirements:
447
438
  - - "~>"
448
439
  - !ruby/object:Gem::Version
449
- version: 3.8.0
450
- - - ">="
451
- - !ruby/object:Gem::Version
452
- version: 3.8.0
440
+ version: 3.10.0
453
441
  - !ruby/object:Gem::Dependency
454
442
  name: rspec-core
455
443
  requirement: !ruby/object:Gem::Requirement
456
444
  requirements:
457
445
  - - "~>"
458
446
  - !ruby/object:Gem::Version
459
- version: 3.8.0
460
- - - ">="
461
- - !ruby/object:Gem::Version
462
- version: 3.8.0
447
+ version: 3.10.0
463
448
  type: :development
464
449
  prerelease: false
465
450
  version_requirements: !ruby/object:Gem::Requirement
466
451
  requirements:
467
452
  - - "~>"
468
453
  - !ruby/object:Gem::Version
469
- version: 3.8.0
470
- - - ">="
471
- - !ruby/object:Gem::Version
472
- version: 3.8.0
454
+ version: 3.10.0
473
455
  - !ruby/object:Gem::Dependency
474
456
  name: rspec-collection_matchers
475
457
  requirement: !ruby/object:Gem::Requirement
@@ -496,48 +478,42 @@ dependencies:
496
478
  requirements:
497
479
  - - "~>"
498
480
  - !ruby/object:Gem::Version
499
- version: 0.18.0
481
+ version: 1.4.2
500
482
  type: :development
501
483
  prerelease: false
502
484
  version_requirements: !ruby/object:Gem::Requirement
503
485
  requirements:
504
486
  - - "~>"
505
487
  - !ruby/object:Gem::Version
506
- version: 0.18.0
488
+ version: 1.4.2
507
489
  - !ruby/object:Gem::Dependency
508
- name: scrutinizer-ocular
490
+ name: simplecov
509
491
  requirement: !ruby/object:Gem::Requirement
510
492
  requirements:
511
493
  - - "~>"
512
494
  - !ruby/object:Gem::Version
513
- version: 1.0.1
514
- - - ">="
515
- - !ruby/object:Gem::Version
516
- version: 1.0.0
495
+ version: 0.22.0
517
496
  type: :development
518
497
  prerelease: false
519
498
  version_requirements: !ruby/object:Gem::Requirement
520
499
  requirements:
521
500
  - - "~>"
522
501
  - !ruby/object:Gem::Version
523
- version: 1.0.1
524
- - - ">="
525
- - !ruby/object:Gem::Version
526
- version: 1.0.0
502
+ version: 0.22.0
527
503
  - !ruby/object:Gem::Dependency
528
- name: simplecov
504
+ name: simplecov-cobertura
529
505
  requirement: !ruby/object:Gem::Requirement
530
506
  requirements:
531
507
  - - "~>"
532
508
  - !ruby/object:Gem::Version
533
- version: 0.17.0
509
+ version: '2.1'
534
510
  type: :development
535
511
  prerelease: false
536
512
  version_requirements: !ruby/object:Gem::Requirement
537
513
  requirements:
538
514
  - - "~>"
539
515
  - !ruby/object:Gem::Version
540
- version: 0.17.0
516
+ version: '2.1'
541
517
  - !ruby/object:Gem::Dependency
542
518
  name: yard
543
519
  requirement: !ruby/object:Gem::Requirement
@@ -586,20 +562,14 @@ dependencies:
586
562
  requirements:
587
563
  - - "~>"
588
564
  - !ruby/object:Gem::Version
589
- version: 1.5.0
590
- - - ">="
591
- - !ruby/object:Gem::Version
592
- version: 1.4.0
565
+ version: 1.6.0
593
566
  type: :development
594
567
  prerelease: false
595
568
  version_requirements: !ruby/object:Gem::Requirement
596
569
  requirements:
597
570
  - - "~>"
598
571
  - !ruby/object:Gem::Version
599
- version: 1.5.0
600
- - - ">="
601
- - !ruby/object:Gem::Version
602
- version: 1.4.0
572
+ version: 1.6.0
603
573
  - !ruby/object:Gem::Dependency
604
574
  name: binding_of_caller
605
575
  requirement: !ruby/object:Gem::Requirement
@@ -706,7 +676,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
706
676
  - !ruby/object:Gem::Version
707
677
  version: '0'
708
678
  requirements: []
709
- rubygems_version: 3.1.2
679
+ rubygems_version: 3.3.26
710
680
  signing_key:
711
681
  specification_version: 4
712
682
  summary: Schema design for NoSQL applications