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 +4 -4
- data/lib/nose/backend/cassandra.rb +1 -0
- data/lib/nose/backend/file.rb +3 -1
- data/lib/nose/cost.rb +7 -7
- data/lib/nose/model/entity.rb +1 -1
- data/lib/nose/model/fields.rb +19 -8
- data/lib/nose/plans/execution_plan.rb +1 -1
- data/lib/nose/plans/query_planner.rb +1 -1
- data/lib/nose/plans/update_planner.rb +3 -3
- data/lib/nose/plans.rb +1 -1
- data/lib/nose/random.rb +2 -2
- data/lib/nose/serialize.rb +2 -2
- data/lib/nose/util.rb +1 -1
- data/models/eac.rb +3 -3
- data/models/ebay.rb +2 -2
- data/models/rubis.rb +10 -10
- metadata +72 -102
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a4b183fb83685b5315c0a7e33444efdce66d4c86d315fef8be34a596e5600e6
|
4
|
+
data.tar.gz: 3f43ae8a9ced609ec0af23385115bb970e4b80e94ec1a26218778ca811fd18f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b152b3d741f9c0c43eea0ff7fb57eda440cf1d1d1fe919a50f2b00774dadfa14817acc07ebd3af37399c21491cdce8cae938ce99343c317b6eaa6d2815f8121
|
7
|
+
data.tar.gz: 368be32a28b189bd0cf1c77a4444a6a46e727794510a5a8da5364b4028607910e17f0926a9b911d93ae79499b073b1bcb93a2ed6da6678cdb3e91f596e24ae9e
|
data/lib/nose/backend/file.rb
CHANGED
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 [
|
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 [
|
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 [
|
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 [
|
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 [
|
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 [
|
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 [
|
58
|
+
# @return [Integer]
|
59
59
|
def pruned_cost(_step)
|
60
60
|
0
|
61
61
|
end
|
data/lib/nose/model/entity.rb
CHANGED
data/lib/nose/model/fields.rb
CHANGED
@@ -34,7 +34,7 @@ module NoSE
|
|
34
34
|
alias eql? ==
|
35
35
|
|
36
36
|
# Hash by entity and name
|
37
|
-
# @return [
|
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
|
108
|
-
|
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 [
|
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 [
|
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
|
-
|
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 [
|
298
|
+
# @return [Integer]
|
288
299
|
def cardinality
|
289
300
|
@entity.count || super
|
290
301
|
end
|
@@ -50,7 +50,7 @@ module NoSE
|
|
50
50
|
end
|
51
51
|
|
52
52
|
# The weight of this query for a given workload
|
53
|
-
# @return [
|
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 [
|
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 [
|
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
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 [
|
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<
|
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))
|
data/lib/nose/serialize.rb
CHANGED
@@ -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 [
|
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 [
|
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 [
|
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
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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
|
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
|
141
|
-
-
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
289
|
+
version: '1.0'
|
290
290
|
- - ">="
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version: 1.
|
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.
|
299
|
+
version: '1.0'
|
300
300
|
- - ">="
|
301
301
|
- !ruby/object:Gem::Version
|
302
|
-
version: 1.
|
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.
|
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.
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
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:
|
488
|
+
version: 1.4.2
|
507
489
|
- !ruby/object:Gem::Dependency
|
508
|
-
name:
|
490
|
+
name: simplecov
|
509
491
|
requirement: !ruby/object:Gem::Requirement
|
510
492
|
requirements:
|
511
493
|
- - "~>"
|
512
494
|
- !ruby/object:Gem::Version
|
513
|
-
version:
|
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:
|
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:
|
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:
|
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.
|
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.
|
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.
|
679
|
+
rubygems_version: 3.3.26
|
710
680
|
signing_key:
|
711
681
|
specification_version: 4
|
712
682
|
summary: Schema design for NoSQL applications
|