nose 0.1.3 → 0.2.0
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 +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
|