nose 0.1.0pre4 → 0.1.3

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
- SHA1:
3
- metadata.gz: 41ef239c0f70c5620bf23b22375b827c66cf1455
4
- data.tar.gz: 38f9681415bea77fdf86d2046391e264c9498edf
2
+ SHA256:
3
+ metadata.gz: fdab6ac0cd36aff76527e1581daa256c7078b99aca5221d0744b9c0d8ab0fd7e
4
+ data.tar.gz: 3972ad33202958c29b58fd26863f485a25526fe5369c82e47f8555b89d638cc6
5
5
  SHA512:
6
- metadata.gz: 6dfe61788efd183fd066ee28b0e40d63815786c0a6d405f9726705dbd49a288e887ce499a7008abcdd15c5abfc2bcb664a087c0ec9933f857d786742abd5c352
7
- data.tar.gz: 3fe77c7d39f9c24eb95a2ba0ad8b9cfb0f0975d4d48c88ef8050ac109cfbb1df3c26f698ab502aa6e805e18625c8ebad13a48162722702690afd1bf256b68916
6
+ metadata.gz: 9d21c1fbf046dfc271d232213b1d870b714182ccbd251976587d54f6024da5e88aba65ef7a891d6ab0b6e01af33d82f0e30da0d41fdae9ee3c126da4c54d5824
7
+ data.tar.gz: 416fdc8224f4446a14491806a8907c8a8381009b4315f615d994d87dd4b1f28bd8e9f60d1b04e5c6b72e53518b9c217d8c9596be99337e4082b05d5a142c24c8
@@ -4,7 +4,10 @@ module NoSE
4
4
  # Communication with backends for index creation and statement execution
5
5
  module Backend
6
6
  # Superclass of all database backends
7
- class BackendBase
7
+ class Backend
8
+ include Listing
9
+ include Supertype
10
+
8
11
  def initialize(model, indexes, plans, update_plans, _config)
9
12
  @model = model
10
13
  @indexes = indexes
@@ -308,7 +311,7 @@ module NoSE
308
311
 
309
312
  # Check if the subclass has overridden this step
310
313
  subclass_step_name = step_class.name.sub \
311
- 'NoSE::Backend::BackendBase', self.class.name
314
+ 'NoSE::Backend::Backend', self.class.name
312
315
  step_class = Object.const_get subclass_step_name
313
316
  step_class.new client, fields, conditions,
314
317
  step, next_step, prev_step
@@ -328,7 +331,7 @@ module NoSE
328
331
  def add_delete_step(plan, steps)
329
332
  step_class = DeleteStatementStep
330
333
  subclass_step_name = step_class.name.sub \
331
- 'NoSE::Backend::BackendBase', self.class.name
334
+ 'NoSE::Backend::Backend', self.class.name
332
335
  step_class = Object.const_get subclass_step_name
333
336
  steps << step_class.new(client, plan.index)
334
337
  end
@@ -338,7 +341,7 @@ module NoSE
338
341
  def add_insert_step(plan, steps, fields)
339
342
  step_class = InsertStatementStep
340
343
  subclass_step_name = step_class.name.sub \
341
- 'NoSE::Backend::BackendBase', self.class.name
344
+ 'NoSE::Backend::Backend', self.class.name
342
345
  step_class = Object.const_get subclass_step_name
343
346
  steps << step_class.new(client, plan.index, fields)
344
347
  end
@@ -369,7 +372,7 @@ module NoSE
369
372
  results = nil
370
373
 
371
374
  @steps.each do |step|
372
- if step.is_a?(BackendBase::IndexLookupStatementStep)
375
+ if step.is_a?(Backend::IndexLookupStatementStep)
373
376
  field_ids = step.index.all_fields.map(&:id)
374
377
  field_conds = conditions.select { |key| field_ids.include? key }
375
378
  else
@@ -400,10 +403,10 @@ module NoSE
400
403
  @statement = statement
401
404
  @support_plans = support_plans
402
405
  @delete_step = steps.find do |step|
403
- step.is_a? BackendBase::DeleteStatementStep
406
+ step.is_a? Backend::DeleteStatementStep
404
407
  end
405
408
  @insert_step = steps.find do |step|
406
- step.is_a? BackendBase::InsertStatementStep
409
+ step.is_a? Backend::InsertStatementStep
407
410
  end
408
411
  end
409
412
 
@@ -555,3 +558,7 @@ module NoSE
555
558
  end
556
559
  end
557
560
  end
561
+
562
+ require_relative 'backend/cassandra'
563
+ require_relative 'backend/file'
564
+ require_relative 'backend/mongo'
@@ -6,7 +6,9 @@ require 'zlib'
6
6
  module NoSE
7
7
  module Backend
8
8
  # A backend which communicates with Cassandra via CQL
9
- class CassandraBackend < BackendBase
9
+ class CassandraBackend < Backend
10
+ include Subtype
11
+
10
12
  def initialize(model, indexes, plans, update_plans, config)
11
13
  super
12
14
 
@@ -172,7 +174,7 @@ module NoSE
172
174
  end
173
175
 
174
176
  # Insert data into an index on the backend
175
- class InsertStatementStep < BackendBase::InsertStatementStep
177
+ class InsertStatementStep < Backend::InsertStatementStep
176
178
  def initialize(client, index, fields)
177
179
  super
178
180
 
@@ -228,7 +230,7 @@ module NoSE
228
230
  end
229
231
 
230
232
  # Delete data from an index on the backend
231
- class DeleteStatementStep < BackendBase::DeleteStatementStep
233
+ class DeleteStatementStep < Backend::DeleteStatementStep
232
234
  def initialize(client, index)
233
235
  super
234
236
 
@@ -266,7 +268,7 @@ module NoSE
266
268
  end
267
269
 
268
270
  # A query step to look up data from a particular column family
269
- class IndexLookupStatementStep < BackendBase::IndexLookupStatementStep
271
+ class IndexLookupStatementStep < Backend::IndexLookupStatementStep
270
272
  # rubocop:disable Metrics/ParameterLists
271
273
  def initialize(client, select, conditions, step, next_step, prev_step)
272
274
  super
@@ -3,7 +3,9 @@
3
3
  module NoSE
4
4
  module Backend
5
5
  # Simple backend which persists data to a file
6
- class FileBackend < BackendBase
6
+ class FileBackend < Backend
7
+ include Subtype
8
+
7
9
  def initialize(model, indexes, plans, update_plans, config)
8
10
  super
9
11
 
@@ -104,7 +106,7 @@ module NoSE
104
106
  end
105
107
 
106
108
  # Look up data on an index in the backend
107
- class IndexLookupStatementStep < BackendBase::IndexLookupStatementStep
109
+ class IndexLookupStatementStep < Backend::IndexLookupStatementStep
108
110
  include RowMatcher
109
111
 
110
112
  # Filter all the rows in the specified index to those requested
@@ -128,7 +130,7 @@ module NoSE
128
130
  end
129
131
 
130
132
  # Insert data into an index on the backend
131
- class InsertStatementStep < BackendBase::InsertStatementStep
133
+ class InsertStatementStep < Backend::InsertStatementStep
132
134
  # Add new rows to the index
133
135
  def process(results)
134
136
  key_ids = (@index.hash_fields + @index.order_fields).map(&:id).to_set
@@ -163,7 +165,7 @@ module NoSE
163
165
  end
164
166
 
165
167
  # Delete data from an index on the backend
166
- class DeleteStatementStep < BackendBase::DeleteStatementStep
168
+ class DeleteStatementStep < Backend::DeleteStatementStep
167
169
  include RowMatcher
168
170
 
169
171
  # Remove rows matching the results from the dataset
@@ -5,7 +5,9 @@ require 'mongo'
5
5
  module NoSE
6
6
  module Backend
7
7
  # A backend which communicates with MongoDB
8
- class MongoBackend < BackendBase
8
+ class MongoBackend < Backend
9
+ include Subtype
10
+
9
11
  def initialize(model, indexes, plans, update_plans, config)
10
12
  super
11
13
 
@@ -134,7 +136,7 @@ module NoSE
134
136
  end
135
137
 
136
138
  # Insert data into an index on the backend
137
- class InsertStatementStep < BackendBase::InsertStatementStep
139
+ class InsertStatementStep < Backend::InsertStatementStep
138
140
  def initialize(client, index, fields)
139
141
  super
140
142
 
@@ -169,7 +171,7 @@ module NoSE
169
171
  end
170
172
 
171
173
  # A query step to look up data from a particular collection
172
- class IndexLookupStatementStep < BackendBase::IndexLookupStatementStep
174
+ class IndexLookupStatementStep < Backend::IndexLookupStatementStep
173
175
  # rubocop:disable Metrics/ParameterLists
174
176
  def initialize(client, select, conditions, step, next_step, prev_step)
175
177
  super
@@ -5,6 +5,7 @@ module NoSE
5
5
  module Cost
6
6
  # Cost model for a backend database
7
7
  class Cost
8
+ include Listing
8
9
  include Supertype
9
10
 
10
11
  def initialize(**options)
@@ -7,7 +7,8 @@ module NoSE
7
7
  :entries, :entry_size, :size, :hash_count, :per_hash_count,
8
8
  :graph
9
9
 
10
- def initialize(hash_fields, order_fields, extra, graph, saved_key = nil)
10
+ def initialize(hash_fields, order_fields, extra, graph,
11
+ saved_key: nil)
11
12
  order_set = order_fields.to_set
12
13
  @hash_fields = hash_fields.to_set
13
14
  @order_fields = order_fields.delete_if { |e| hash_fields.include? e }
@@ -189,7 +190,7 @@ module NoSE
189
190
  # @return [Index]
190
191
  def simple_index
191
192
  Index.new [id_field], [], fields.values - [id_field],
192
- QueryGraph::Graph.from_path([id_field]), name
193
+ QueryGraph::Graph.from_path([id_field]), saved_key: name
193
194
  end
194
195
  end
195
196
 
@@ -203,7 +203,7 @@ module NoSE
203
203
  # A random string of the correct length
204
204
  # @return [String]
205
205
  def random_value
206
- Faker::Lorem.characters(@size)
206
+ Faker::Lorem.characters(number: @size)
207
207
  end
208
208
  end
209
209
 
@@ -237,7 +237,7 @@ module NoSE
237
237
  next_year = DateTime.now.next_year
238
238
  next_year = next_year.new_offset(Rational(0, 24))
239
239
 
240
- Faker::Time.between prev_year, next_year
240
+ Faker::Time.between_dates from: prev_year, to: next_year
241
241
  end
242
242
  end
243
243
 
@@ -39,7 +39,8 @@ module NoSE
39
39
  dsl = IndexDSL.new(self)
40
40
  dsl.instance_eval(&block) if block_given?
41
41
  index = Index.new dsl.hash_fields, dsl.order_fields, dsl.extra,
42
- QueryGraph::Graph.from_path(dsl.path_keys), key
42
+ QueryGraph::Graph.from_path(dsl.path_keys),
43
+ saved_key: key
43
44
  @indexes[index.key] = index
44
45
  end
45
46
 
@@ -88,7 +88,6 @@ module NoSE
88
88
 
89
89
  result.workload = @workload
90
90
  result.plans_from_trees trees
91
- result.cost_model = @cost_model
92
91
 
93
92
  # Select the relevant update plans
94
93
  update_plans = update_plans.values.flatten(1).select do |plan|
@@ -99,6 +98,7 @@ module NoSE
99
98
  end
100
99
  result.update_plans = update_plans
101
100
 
101
+ result.cost_model = @cost_model
102
102
  result.validate
103
103
 
104
104
  result
@@ -2,8 +2,9 @@
2
2
 
3
3
  require 'logging'
4
4
 
5
+ require 'mipper'
5
6
  begin
6
- require 'mipper'
7
+ require 'mipper/cbc'
7
8
  rescue LoadError
8
9
  # We can't use most search functionality, but it won't explode
9
10
  nil
@@ -114,7 +114,7 @@ module NoSE
114
114
 
115
115
  Index.new f.call(fragment['hash_fields']),
116
116
  f.call(fragment['order_fields']),
117
- f.call(fragment['extra']), graph, fragment['key']
117
+ f.call(fragment['extra']), graph, saved_key: fragment['key']
118
118
  end
119
119
  end
120
120
 
@@ -150,7 +150,7 @@ module Subtype
150
150
  # Convert camel case class names to an array
151
151
  # @return [Array<String>]
152
152
  def name_array(cls)
153
- frozen_name = cls.name
153
+ frozen_name = cls.name.dup
154
154
  frozen_name.gsub!(/^.*::/, '')
155
155
  frozen_name.gsub!('ID', 'Id')
156
156
  frozen_name.freeze
@@ -276,10 +276,14 @@ module NoSE
276
276
  # by the LOAD_PATH class constant
277
277
  # @return [Object] an instance of the class which included this module
278
278
  def load(name)
279
- path = const_get(:LOAD_PATH)
280
- filename = File.expand_path "../../../#{path}/#{name}.rb", __FILE__
281
- source_code = File.read(filename)
279
+ if File.exist? name
280
+ filename = name
281
+ else
282
+ path = const_get(:LOAD_PATH)
283
+ filename = File.expand_path "../../../#{path}/#{name}.rb", __FILE__
284
+ end
282
285
 
286
+ source_code = File.read(filename)
283
287
  instance = binding.eval source_code, filename
284
288
  instance.instance_variable_set :@source_code, source_code
285
289
  instance
@@ -288,6 +292,29 @@ module NoSE
288
292
  end
289
293
  end
290
294
 
295
+ # Allow tracking of subclasses for plugin purposes
296
+ module Listing
297
+ def self.included(base)
298
+ base.extend ClassMethods
299
+ base.class_variable_set :@@registry, {}
300
+ end
301
+
302
+ # Add a class method to track new subclasses
303
+ module ClassMethods
304
+ # Track this new subclass for later
305
+ # @return [void]
306
+ def inherited(subclass)
307
+ class_variable_get(:@@registry)[subclass.name] = subclass
308
+ end
309
+
310
+ # List all of the encountered subclasses
311
+ # @return [Hash<String, Class>]
312
+ def subclasses
313
+ class_variable_get(:@@registry)
314
+ end
315
+ end
316
+ end
317
+
291
318
  # Extend Time to allow conversion to DateTime instances
292
319
  class Time
293
320
  # Convert to a DateTime instance
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.0pre4
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Mior
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-31 00:00:00.000000000 Z
11
+ date: 2020-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faker
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.6.6
19
+ version: 2.3.0
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.6.0
22
+ version: 1.7.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 1.6.6
29
+ version: 2.3.0
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.6.0
32
+ version: 1.7.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: formatador
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -50,108 +50,108 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 2.7.0
53
+ version: 2.8.0
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 2.7.0
56
+ version: 2.8.0
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: 2.7.0
63
+ version: 2.8.0
64
64
  - - ">="
65
65
  - !ruby/object:Gem::Version
66
- version: 2.7.0
66
+ version: 2.8.0
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: logging
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: 2.1.0
73
+ version: 2.2.0
74
74
  - - ">="
75
75
  - !ruby/object:Gem::Version
76
- version: 2.1.0
76
+ version: 2.2.0
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: 2.1.0
83
+ version: 2.2.0
84
84
  - - ">="
85
85
  - !ruby/object:Gem::Version
86
- version: 2.1.0
86
+ version: 2.2.0
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: mipper
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
91
  - - "~>"
92
92
  - !ruby/object:Gem::Version
93
- version: 0.0.9
93
+ version: 0.1.0
94
94
  type: :runtime
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
- version: 0.0.9
100
+ version: 0.1.0
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: parallel
103
103
  requirement: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: 1.10.0
107
+ version: 1.17.0
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.10.0
110
+ version: 1.11.0
111
111
  type: :runtime
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.10.0
117
+ version: 1.17.0
118
118
  - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: 1.10.0
120
+ version: 1.11.0
121
121
  - !ruby/object:Gem::Dependency
122
122
  name: parslet
123
123
  requirement: !ruby/object:Gem::Requirement
124
124
  requirements:
125
125
  - - "~>"
126
126
  - !ruby/object:Gem::Version
127
- version: 1.7.1
127
+ version: 1.8.0
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: 1.7.0
130
+ version: 1.8.0
131
131
  type: :runtime
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: 1.7.1
137
+ version: 1.8.0
138
138
  - - ">="
139
139
  - !ruby/object:Gem::Version
140
- version: 1.7.0
140
+ version: 1.8.0
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: pg
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
145
  - - "~>"
146
146
  - !ruby/object:Gem::Version
147
- version: 0.19.0
147
+ version: 0.20.0
148
148
  type: :runtime
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - "~>"
153
153
  - !ruby/object:Gem::Version
154
- version: 0.19.0
154
+ version: 0.20.0
155
155
  - !ruby/object:Gem::Dependency
156
156
  name: pickup
157
157
  requirement: !ruby/object:Gem::Requirement
@@ -172,21 +172,21 @@ dependencies:
172
172
  requirements:
173
173
  - - "~>"
174
174
  - !ruby/object:Gem::Version
175
- version: 0.10.4
175
+ version: 0.12.2
176
176
  type: :runtime
177
177
  prerelease: false
178
178
  version_requirements: !ruby/object:Gem::Requirement
179
179
  requirements:
180
180
  - - "~>"
181
181
  - !ruby/object:Gem::Version
182
- version: 0.10.4
182
+ version: 0.12.2
183
183
  - !ruby/object:Gem::Dependency
184
184
  name: rake
185
185
  requirement: !ruby/object:Gem::Requirement
186
186
  requirements:
187
187
  - - "~>"
188
188
  - !ruby/object:Gem::Version
189
- version: 12.0.0
189
+ version: 12.3.2
190
190
  - - ">="
191
191
  - !ruby/object:Gem::Version
192
192
  version: 12.0.0
@@ -196,7 +196,7 @@ dependencies:
196
196
  requirements:
197
197
  - - "~>"
198
198
  - !ruby/object:Gem::Version
199
- version: 12.0.0
199
+ version: 12.3.2
200
200
  - - ">="
201
201
  - !ruby/object:Gem::Version
202
202
  version: 12.0.0
@@ -266,27 +266,27 @@ dependencies:
266
266
  requirements:
267
267
  - - "~>"
268
268
  - !ruby/object:Gem::Version
269
- version: 4.41.0
269
+ version: 5.22.0
270
270
  - - ">="
271
271
  - !ruby/object:Gem::Version
272
- version: 4.41.0
272
+ version: 4.46.0
273
273
  type: :runtime
274
274
  prerelease: false
275
275
  version_requirements: !ruby/object:Gem::Requirement
276
276
  requirements:
277
277
  - - "~>"
278
278
  - !ruby/object:Gem::Version
279
- version: 4.41.0
279
+ version: 5.22.0
280
280
  - - ">="
281
281
  - !ruby/object:Gem::Version
282
- version: 4.41.0
282
+ version: 4.46.0
283
283
  - !ruby/object:Gem::Dependency
284
284
  name: smarter_csv
285
285
  requirement: !ruby/object:Gem::Requirement
286
286
  requirements:
287
287
  - - "~>"
288
288
  - !ruby/object:Gem::Version
289
- version: 1.1.1
289
+ version: 1.2.6
290
290
  - - ">="
291
291
  - !ruby/object:Gem::Version
292
292
  version: 1.1.0
@@ -296,7 +296,7 @@ dependencies:
296
296
  requirements:
297
297
  - - "~>"
298
298
  - !ruby/object:Gem::Version
299
- version: 1.1.1
299
+ version: 1.2.6
300
300
  - - ">="
301
301
  - !ruby/object:Gem::Version
302
302
  version: 1.1.0
@@ -306,7 +306,7 @@ dependencies:
306
306
  requirements:
307
307
  - - "~>"
308
308
  - !ruby/object:Gem::Version
309
- version: 3.1.0
309
+ version: 3.2.3
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.1.0
319
+ version: 3.2.3
320
320
  - - ">="
321
321
  - !ruby/object:Gem::Version
322
322
  version: 3.1.0
@@ -326,7 +326,7 @@ dependencies:
326
326
  requirements:
327
327
  - - "~>"
328
328
  - !ruby/object:Gem::Version
329
- version: 2.4.0
329
+ version: 2.10.0
330
330
  - - ">="
331
331
  - !ruby/object:Gem::Version
332
332
  version: 2.4.0
@@ -336,7 +336,7 @@ dependencies:
336
336
  requirements:
337
337
  - - "~>"
338
338
  - !ruby/object:Gem::Version
339
- version: 2.4.0
339
+ version: 2.10.0
340
340
  - - ">="
341
341
  - !ruby/object:Gem::Version
342
342
  version: 2.4.0
@@ -346,14 +346,14 @@ dependencies:
346
346
  requirements:
347
347
  - - "~>"
348
348
  - !ruby/object:Gem::Version
349
- version: 0.10.0
349
+ version: 0.20.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.10.0
356
+ version: 0.20.0
357
357
  - !ruby/object:Gem::Dependency
358
358
  name: memory_profiler
359
359
  requirement: !ruby/object:Gem::Requirement
@@ -374,7 +374,7 @@ dependencies:
374
374
  requirements:
375
375
  - - "~>"
376
376
  - !ruby/object:Gem::Version
377
- version: 3.4.2
377
+ version: 3.7.0
378
378
  - - ">="
379
379
  - !ruby/object:Gem::Version
380
380
  version: 3.4.0
@@ -384,7 +384,7 @@ dependencies:
384
384
  requirements:
385
385
  - - "~>"
386
386
  - !ruby/object:Gem::Version
387
- version: 3.4.2
387
+ version: 3.7.0
388
388
  - - ">="
389
389
  - !ruby/object:Gem::Version
390
390
  version: 3.4.0
@@ -394,14 +394,14 @@ dependencies:
394
394
  requirements:
395
395
  - - "~>"
396
396
  - !ruby/object:Gem::Version
397
- version: 0.9.0
397
+ version: 1.0.0
398
398
  type: :development
399
399
  prerelease: false
400
400
  version_requirements: !ruby/object:Gem::Requirement
401
401
  requirements:
402
402
  - - "~>"
403
403
  - !ruby/object:Gem::Version
404
- version: 0.9.0
404
+ version: 1.0.0
405
405
  - !ruby/object:Gem::Dependency
406
406
  name: pry-stack_explorer
407
407
  requirement: !ruby/object:Gem::Requirement
@@ -436,47 +436,47 @@ dependencies:
436
436
  requirements:
437
437
  - - "~>"
438
438
  - !ruby/object:Gem::Version
439
- version: 3.5.0
439
+ version: 3.8.0
440
440
  - - ">="
441
441
  - !ruby/object:Gem::Version
442
- version: 3.5.0
442
+ version: 3.8.0
443
443
  type: :development
444
444
  prerelease: false
445
445
  version_requirements: !ruby/object:Gem::Requirement
446
446
  requirements:
447
447
  - - "~>"
448
448
  - !ruby/object:Gem::Version
449
- version: 3.5.0
449
+ version: 3.8.0
450
450
  - - ">="
451
451
  - !ruby/object:Gem::Version
452
- version: 3.5.0
452
+ version: 3.8.0
453
453
  - !ruby/object:Gem::Dependency
454
454
  name: rspec-core
455
455
  requirement: !ruby/object:Gem::Requirement
456
456
  requirements:
457
457
  - - "~>"
458
458
  - !ruby/object:Gem::Version
459
- version: 3.5.4
459
+ version: 3.8.0
460
460
  - - ">="
461
461
  - !ruby/object:Gem::Version
462
- version: 3.5.0
462
+ version: 3.8.0
463
463
  type: :development
464
464
  prerelease: false
465
465
  version_requirements: !ruby/object:Gem::Requirement
466
466
  requirements:
467
467
  - - "~>"
468
468
  - !ruby/object:Gem::Version
469
- version: 3.5.4
469
+ version: 3.8.0
470
470
  - - ">="
471
471
  - !ruby/object:Gem::Version
472
- version: 3.5.0
472
+ version: 3.8.0
473
473
  - !ruby/object:Gem::Dependency
474
474
  name: rspec-collection_matchers
475
475
  requirement: !ruby/object:Gem::Requirement
476
476
  requirements:
477
477
  - - "~>"
478
478
  - !ruby/object:Gem::Version
479
- version: 1.1.2
479
+ version: 1.2.0
480
480
  - - ">="
481
481
  - !ruby/object:Gem::Version
482
482
  version: 1.1.0
@@ -486,7 +486,7 @@ dependencies:
486
486
  requirements:
487
487
  - - "~>"
488
488
  - !ruby/object:Gem::Version
489
- version: 1.1.2
489
+ version: 1.2.0
490
490
  - - ">="
491
491
  - !ruby/object:Gem::Version
492
492
  version: 1.1.0
@@ -496,14 +496,14 @@ dependencies:
496
496
  requirements:
497
497
  - - "~>"
498
498
  - !ruby/object:Gem::Version
499
- version: 0.16.2
499
+ version: 0.18.0
500
500
  type: :development
501
501
  prerelease: false
502
502
  version_requirements: !ruby/object:Gem::Requirement
503
503
  requirements:
504
504
  - - "~>"
505
505
  - !ruby/object:Gem::Version
506
- version: 0.16.2
506
+ version: 0.18.0
507
507
  - !ruby/object:Gem::Dependency
508
508
  name: scrutinizer-ocular
509
509
  requirement: !ruby/object:Gem::Requirement
@@ -530,14 +530,14 @@ dependencies:
530
530
  requirements:
531
531
  - - "~>"
532
532
  - !ruby/object:Gem::Version
533
- version: 0.12.0
533
+ version: 0.17.0
534
534
  type: :development
535
535
  prerelease: false
536
536
  version_requirements: !ruby/object:Gem::Requirement
537
537
  requirements:
538
538
  - - "~>"
539
539
  - !ruby/object:Gem::Version
540
- version: 0.12.0
540
+ version: 0.17.0
541
541
  - !ruby/object:Gem::Dependency
542
542
  name: yard
543
543
  requirement: !ruby/object:Gem::Requirement
@@ -572,21 +572,21 @@ dependencies:
572
572
  requirements:
573
573
  - - "~>"
574
574
  - !ruby/object:Gem::Version
575
- version: 0.4.5
575
+ version: 0.5.2
576
576
  type: :runtime
577
577
  prerelease: false
578
578
  version_requirements: !ruby/object:Gem::Requirement
579
579
  requirements:
580
580
  - - "~>"
581
581
  - !ruby/object:Gem::Version
582
- version: 0.4.5
582
+ version: 0.5.2
583
583
  - !ruby/object:Gem::Dependency
584
584
  name: pry-rescue
585
585
  requirement: !ruby/object:Gem::Requirement
586
586
  requirements:
587
587
  - - "~>"
588
588
  - !ruby/object:Gem::Version
589
- version: 1.4.4
589
+ version: 1.5.0
590
590
  - - ">="
591
591
  - !ruby/object:Gem::Version
592
592
  version: 1.4.0
@@ -596,7 +596,7 @@ dependencies:
596
596
  requirements:
597
597
  - - "~>"
598
598
  - !ruby/object:Gem::Version
599
- version: 1.4.4
599
+ version: 1.5.0
600
600
  - - ">="
601
601
  - !ruby/object:Gem::Version
602
602
  version: 1.4.0
@@ -606,14 +606,14 @@ dependencies:
606
606
  requirements:
607
607
  - - "~>"
608
608
  - !ruby/object:Gem::Version
609
- version: 0.7.2
609
+ version: 0.8.0
610
610
  type: :development
611
611
  prerelease: false
612
612
  version_requirements: !ruby/object:Gem::Requirement
613
613
  requirements:
614
614
  - - "~>"
615
615
  - !ruby/object:Gem::Version
616
- version: 0.7.2
616
+ version: 0.8.0
617
617
  description:
618
618
  email: mmior@uwaterloo.ca
619
619
  executables: []
@@ -702,12 +702,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
702
702
  version: '0'
703
703
  required_rubygems_version: !ruby/object:Gem::Requirement
704
704
  requirements:
705
- - - ">"
705
+ - - ">="
706
706
  - !ruby/object:Gem::Version
707
- version: 1.3.1
707
+ version: '0'
708
708
  requirements: []
709
- rubyforge_project:
710
- rubygems_version: 2.5.2
709
+ rubygems_version: 3.1.2
711
710
  signing_key:
712
711
  specification_version: 4
713
712
  summary: Schema design for NoSQL applications