nose 0.1.0pre5 → 0.1.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8ed212e03d78e2d1915732350ff36867d08bb269
4
- data.tar.gz: be5652bafa272b3f4ad5ded93a0ef1c3cbd261bf
2
+ SHA256:
3
+ metadata.gz: 4104b913e3d80c2b02480929ab4689cf58fa16801214e064c8e6fb5562507997
4
+ data.tar.gz: 65da94fc536524e82c9d0b6c5f0b21dbb09ec9ce54a8735b8368c1afde0e2df3
5
5
  SHA512:
6
- metadata.gz: 448210b5c1423d10138c0fc2693d7d0a2728ac84a13d20b07d2365fe48d34a7e7c36af81535d53d0cf3ee577f350791f02e5a7eda8e473817b5a57699ac42875
7
- data.tar.gz: d2ae70342d7782474c201d8adddac1eb444f14e216994ed8ea2e5be0684a3dc0e9fdaed8d61ef945eca5cf210b2e36767423d35a9a15fc96540d441ef9fafbbe
6
+ metadata.gz: b763ec409386c46522e090e8e9466dbb5e32b9b01f5bea23e20b6c6a739dd0a89ff91fa5b2cbae1d3719a5a90eba1b7975517e5851106eb1891ec8a722d5dce9
7
+ data.tar.gz: 39a4647647c7df4cd5db4f58a74e3aa1ba5691ae069d1788844b419d20c6c7276448408c89902203ebaf2c0ddb4ca73303153c3c041dd4375f58b0d8c63b26fb
@@ -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
@@ -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
 
@@ -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)
@@ -203,7 +214,7 @@ module NoSE
203
214
  # A random string of the correct length
204
215
  # @return [String]
205
216
  def random_value
206
- Faker::Lorem.characters(@size)
217
+ Faker::Lorem.characters(number: @size)
207
218
  end
208
219
  end
209
220
 
@@ -237,7 +248,7 @@ module NoSE
237
248
  next_year = DateTime.now.next_year
238
249
  next_year = next_year.new_offset(Rational(0, 24))
239
250
 
240
- Faker::Time.between prev_year, next_year
251
+ Faker::Time.between_dates from: prev_year, to: next_year
241
252
  end
242
253
  end
243
254
 
@@ -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
@@ -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
@@ -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
@@ -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))
@@ -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
 
@@ -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?
@@ -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
@@ -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|
@@ -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
@@ -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
@@ -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.0pre5
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Mior
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-03 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