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 +5 -5
- data/lib/nose/backend.rb +14 -7
- data/lib/nose/backend/cassandra.rb +6 -4
- data/lib/nose/backend/file.rb +6 -4
- data/lib/nose/backend/mongo.rb +5 -3
- data/lib/nose/cost.rb +1 -0
- data/lib/nose/indexes.rb +3 -2
- data/lib/nose/model/fields.rb +2 -2
- data/lib/nose/schema.rb +2 -1
- data/lib/nose/search.rb +1 -1
- data/lib/nose/search/problem.rb +2 -1
- data/lib/nose/serialize.rb +1 -1
- data/lib/nose/util.rb +31 -4
- metadata +69 -70
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fdab6ac0cd36aff76527e1581daa256c7078b99aca5221d0744b9c0d8ab0fd7e
|
4
|
+
data.tar.gz: 3972ad33202958c29b58fd26863f485a25526fe5369c82e47f8555b89d638cc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d21c1fbf046dfc271d232213b1d870b714182ccbd251976587d54f6024da5e88aba65ef7a891d6ab0b6e01af33d82f0e30da0d41fdae9ee3c126da4c54d5824
|
7
|
+
data.tar.gz: 416fdc8224f4446a14491806a8907c8a8381009b4315f615d994d87dd4b1f28bd8e9f60d1b04e5c6b72e53518b9c217d8c9596be99337e4082b05d5a142c24c8
|
data/lib/nose/backend.rb
CHANGED
@@ -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
|
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::
|
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::
|
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::
|
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?(
|
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?
|
406
|
+
step.is_a? Backend::DeleteStatementStep
|
404
407
|
end
|
405
408
|
@insert_step = steps.find do |step|
|
406
|
-
step.is_a?
|
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 <
|
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 <
|
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 <
|
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 <
|
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
|
data/lib/nose/backend/file.rb
CHANGED
@@ -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 <
|
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 <
|
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 <
|
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 <
|
168
|
+
class DeleteStatementStep < Backend::DeleteStatementStep
|
167
169
|
include RowMatcher
|
168
170
|
|
169
171
|
# Remove rows matching the results from the dataset
|
data/lib/nose/backend/mongo.rb
CHANGED
@@ -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 <
|
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 <
|
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 <
|
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
|
data/lib/nose/cost.rb
CHANGED
data/lib/nose/indexes.rb
CHANGED
@@ -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,
|
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
|
|
data/lib/nose/model/fields.rb
CHANGED
@@ -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.
|
240
|
+
Faker::Time.between_dates from: prev_year, to: next_year
|
241
241
|
end
|
242
242
|
end
|
243
243
|
|
data/lib/nose/schema.rb
CHANGED
@@ -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),
|
42
|
+
QueryGraph::Graph.from_path(dsl.path_keys),
|
43
|
+
saved_key: key
|
43
44
|
@indexes[index.key] = index
|
44
45
|
end
|
45
46
|
|
data/lib/nose/search.rb
CHANGED
@@ -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
|
data/lib/nose/search/problem.rb
CHANGED
data/lib/nose/serialize.rb
CHANGED
data/lib/nose/util.rb
CHANGED
@@ -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
|
-
|
280
|
-
|
281
|
-
|
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.
|
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:
|
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:
|
19
|
+
version: 2.3.0
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
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:
|
29
|
+
version: 2.3.0
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
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.
|
53
|
+
version: 2.8.0
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 2.
|
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.
|
63
|
+
version: 2.8.0
|
64
64
|
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: 2.
|
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.
|
73
|
+
version: 2.2.0
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 2.
|
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.
|
83
|
+
version: 2.2.0
|
84
84
|
- - ">="
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
version: 2.
|
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
|
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
|
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.
|
107
|
+
version: 1.17.0
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
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.
|
117
|
+
version: 1.17.0
|
118
118
|
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version: 1.
|
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.
|
127
|
+
version: 1.8.0
|
128
128
|
- - ">="
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: 1.
|
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.
|
137
|
+
version: 1.8.0
|
138
138
|
- - ">="
|
139
139
|
- !ruby/object:Gem::Version
|
140
|
-
version: 1.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
269
|
+
version: 5.22.0
|
270
270
|
- - ">="
|
271
271
|
- !ruby/object:Gem::Version
|
272
|
-
version: 4.
|
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:
|
279
|
+
version: 5.22.0
|
280
280
|
- - ">="
|
281
281
|
- !ruby/object:Gem::Version
|
282
|
-
version: 4.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
439
|
+
version: 3.8.0
|
440
440
|
- - ">="
|
441
441
|
- !ruby/object:Gem::Version
|
442
|
-
version: 3.
|
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.
|
449
|
+
version: 3.8.0
|
450
450
|
- - ">="
|
451
451
|
- !ruby/object:Gem::Version
|
452
|
-
version: 3.
|
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.
|
459
|
+
version: 3.8.0
|
460
460
|
- - ">="
|
461
461
|
- !ruby/object:Gem::Version
|
462
|
-
version: 3.
|
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.
|
469
|
+
version: 3.8.0
|
470
470
|
- - ">="
|
471
471
|
- !ruby/object:Gem::Version
|
472
|
-
version: 3.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
707
|
+
version: '0'
|
708
708
|
requirements: []
|
709
|
-
|
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
|