ardb 0.16.0 → 0.17.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.
- data/lib/ardb/relation_spy.rb +65 -16
- data/lib/ardb/version.rb +1 -1
- data/test/unit/relation_spy_tests.rb +351 -99
- metadata +4 -4
data/lib/ardb/relation_spy.rb
CHANGED
@@ -3,22 +3,26 @@ module Ardb
|
|
3
3
|
class RelationSpy
|
4
4
|
|
5
5
|
attr_reader :applied
|
6
|
-
attr_accessor :order_values, :reverse_order_value
|
7
6
|
attr_accessor :limit_value, :offset_value
|
8
7
|
attr_accessor :results
|
9
8
|
|
10
9
|
def initialize
|
11
10
|
@applied, @results = [], []
|
12
|
-
@order_values = []
|
13
|
-
@reverse_order_value = nil
|
14
11
|
@offset_value, @limit_value = nil, nil
|
15
12
|
end
|
16
13
|
|
14
|
+
def ==(other)
|
15
|
+
other.kind_of?(self.class) ? @applied == other.applied : super
|
16
|
+
end
|
17
|
+
|
18
|
+
# ActiveRecord::QueryMethods
|
19
|
+
|
17
20
|
[ :select,
|
18
|
-
:joins,
|
21
|
+
:includes, :joins,
|
19
22
|
:where,
|
20
23
|
:group, :having,
|
21
|
-
:
|
24
|
+
:order, :reverse_order,
|
25
|
+
:readonly
|
22
26
|
].each do |type|
|
23
27
|
|
24
28
|
define_method(type) do |*args|
|
@@ -28,12 +32,6 @@ module Ardb
|
|
28
32
|
|
29
33
|
end
|
30
34
|
|
31
|
-
def order(*args)
|
32
|
-
@order_values += args
|
33
|
-
@applied << AppliedExpression.new(:order, args)
|
34
|
-
self
|
35
|
-
end
|
36
|
-
|
37
35
|
def limit(value)
|
38
36
|
@limit_value = value ? value.to_i : nil
|
39
37
|
@applied << AppliedExpression.new(:limit, [ value ])
|
@@ -41,25 +39,76 @@ module Ardb
|
|
41
39
|
end
|
42
40
|
|
43
41
|
def offset(value)
|
44
|
-
@offset_value = value ? value.to_i :
|
42
|
+
@offset_value = value ? value.to_i : nil
|
45
43
|
@applied << AppliedExpression.new(:offset, [ value ])
|
46
44
|
self
|
47
45
|
end
|
48
46
|
|
47
|
+
# ActiveRecord::SpawnMethods
|
48
|
+
|
49
|
+
def merge(other)
|
50
|
+
return self if self.equal?(other)
|
51
|
+
if other.kind_of?(self.class)
|
52
|
+
other.applied.each{ |a| self.send(a.type, *a.args) }
|
53
|
+
else
|
54
|
+
@applied << AppliedExpression.new(:merge, [ other ])
|
55
|
+
end
|
56
|
+
self
|
57
|
+
end
|
58
|
+
|
59
|
+
def except(*skips)
|
60
|
+
skips = skips.map(&:to_sym)
|
61
|
+
@applied.reject!{ |a| skips.include?(a.type) }
|
62
|
+
@limit_value = nil if skips.include?(:limit)
|
63
|
+
@offset_value = nil if skips.include?(:offset)
|
64
|
+
self
|
65
|
+
end
|
66
|
+
|
67
|
+
def only(*onlies)
|
68
|
+
onlies = onlies.map(&:to_sym)
|
69
|
+
@applied.reject!{ |a| !onlies.include?(a.type) }
|
70
|
+
@limit_value = nil unless onlies.include?(:limit)
|
71
|
+
@offset_value = nil unless onlies.include?(:offset)
|
72
|
+
self
|
73
|
+
end
|
74
|
+
|
75
|
+
# ActiveRecord::FinderMethods
|
76
|
+
|
77
|
+
def find(id)
|
78
|
+
record = @results.detect{ |result| result.id == id }
|
79
|
+
record || raise(NotFoundError)
|
80
|
+
end
|
81
|
+
|
82
|
+
def first
|
83
|
+
self.all.first
|
84
|
+
end
|
85
|
+
|
86
|
+
def first!
|
87
|
+
self.first || raise(NotFoundError)
|
88
|
+
end
|
89
|
+
|
90
|
+
def last
|
91
|
+
self.all.last
|
92
|
+
end
|
93
|
+
|
94
|
+
def last!
|
95
|
+
self.last || raise(NotFoundError)
|
96
|
+
end
|
97
|
+
|
49
98
|
def all
|
50
99
|
@results[(@offset_value || 0), (@limit_value || @results.size)] || []
|
51
100
|
end
|
52
101
|
|
102
|
+
# ActiveRecord::Calculations
|
103
|
+
|
53
104
|
def count
|
54
105
|
all.size
|
55
106
|
end
|
56
107
|
|
57
|
-
def ==(other)
|
58
|
-
@applied == other.applied
|
59
|
-
end
|
60
|
-
|
61
108
|
AppliedExpression = Struct.new(:type, :args)
|
62
109
|
|
110
|
+
NotFoundError = Class.new(RuntimeError)
|
111
|
+
|
63
112
|
end
|
64
113
|
|
65
114
|
end
|
data/lib/ardb/version.rb
CHANGED
@@ -12,158 +12,410 @@ class Ardb::RelationSpy
|
|
12
12
|
|
13
13
|
should have_readers :applied
|
14
14
|
should have_accessors :results
|
15
|
-
should have_accessors :order_values, :reverse_order_value
|
16
15
|
should have_accessors :limit_value, :offset_value
|
17
|
-
should have_imeths :select
|
16
|
+
should have_imeths :select
|
17
|
+
should have_imeths :includes, :joins
|
18
|
+
should have_imeths :where
|
19
|
+
should have_imeths :order, :reverse_order
|
20
|
+
should have_imeths :group, :having
|
21
|
+
should have_imeths :readonly
|
18
22
|
should have_imeths :limit, :offset
|
19
|
-
should have_imeths :
|
23
|
+
should have_imeths :merge, :only, :except
|
24
|
+
should have_imeths :find, :first, :first!, :last, :last!, :all
|
25
|
+
should have_imeths :count
|
20
26
|
|
21
27
|
should "default it's attributes" do
|
22
28
|
assert_equal [], subject.applied
|
23
29
|
assert_equal [], subject.results
|
24
|
-
assert_equal [], subject.order_values
|
25
|
-
assert_equal nil, subject.reverse_order_value
|
26
30
|
assert_equal nil, subject.limit_value
|
27
31
|
assert_equal nil, subject.offset_value
|
28
32
|
end
|
29
33
|
|
30
|
-
should "
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
assert_equal
|
34
|
+
should "be comparable using there applied collections" do
|
35
|
+
other_relation = Ardb::RelationSpy.new
|
36
|
+
other_relation.select :column_a
|
37
|
+
assert_not_equal other_relation, subject
|
38
|
+
|
39
|
+
subject.select :column_a
|
40
|
+
assert_equal other_relation, subject
|
37
41
|
end
|
38
42
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
end
|
44
|
+
|
45
|
+
class SelectTests < UnitTests
|
46
|
+
desc "select"
|
47
|
+
setup do
|
48
|
+
@relation_spy.select :column_a, :column_b
|
49
|
+
@applied = subject.applied.first
|
46
50
|
end
|
47
51
|
|
48
|
-
should "
|
49
|
-
|
50
|
-
assert_equal
|
51
|
-
|
52
|
-
assert_instance_of AppliedExpression, applied_expression
|
53
|
-
assert_equal :where, applied_expression.type
|
54
|
-
assert_equal [ { :column_a => 'some value' } ], applied_expression.args
|
52
|
+
should "have added a select applied expression with the passed args" do
|
53
|
+
assert_instance_of AppliedExpression, @applied
|
54
|
+
assert_equal :select, @applied.type
|
55
|
+
assert_equal [ :column_a, :column_b ], @applied.args
|
55
56
|
end
|
56
57
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
58
|
+
end
|
59
|
+
|
60
|
+
class IncludesTests < UnitTests
|
61
|
+
desc "includes"
|
62
|
+
setup do
|
63
|
+
@relation_spy.includes :table_a, :table_b
|
64
|
+
@applied = subject.applied.first
|
64
65
|
end
|
65
66
|
|
66
|
-
should "
|
67
|
-
|
68
|
-
|
69
|
-
|
67
|
+
should "have added an includes applied expression with the passed args" do
|
68
|
+
assert_instance_of AppliedExpression, @applied
|
69
|
+
assert_equal :includes, @applied.type
|
70
|
+
assert_equal [ :table_a, :table_b ], @applied.args
|
70
71
|
end
|
71
72
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
73
|
+
end
|
74
|
+
|
75
|
+
class JoinsTests < UnitTests
|
76
|
+
desc "joins"
|
77
|
+
setup do
|
78
|
+
@relation_spy.joins :table_a, :table_b
|
79
|
+
@applied = subject.applied.first
|
79
80
|
end
|
80
81
|
|
81
|
-
should "
|
82
|
-
|
83
|
-
assert_equal
|
84
|
-
|
85
|
-
assert_instance_of AppliedExpression, applied_expression
|
86
|
-
assert_equal :having, applied_expression.type
|
87
|
-
assert_equal [ 'COUNT(column_a) > 0' ], applied_expression.args
|
82
|
+
should "have added a joins applied expression with the passed args" do
|
83
|
+
assert_instance_of AppliedExpression, @applied
|
84
|
+
assert_equal :joins, @applied.type
|
85
|
+
assert_equal [ :table_a, :table_b ], @applied.args
|
88
86
|
end
|
89
87
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
88
|
+
end
|
89
|
+
|
90
|
+
class WhereTests < UnitTests
|
91
|
+
desc "where"
|
92
|
+
setup do
|
93
|
+
@relation_spy.where :column_a => 'some value'
|
94
|
+
@applied = subject.applied.first
|
95
|
+
end
|
96
|
+
|
97
|
+
should "have added a where applied expression with the passed args" do
|
98
|
+
assert_instance_of AppliedExpression, @applied
|
99
|
+
assert_equal :where, @applied.type
|
100
|
+
assert_equal [ { :column_a => 'some value' } ], @applied.args
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
class OrderTests < UnitTests
|
106
|
+
desc "order"
|
107
|
+
setup do
|
108
|
+
@relation_spy.order :column_a, :column_b
|
109
|
+
@applied = subject.applied.first
|
110
|
+
end
|
111
|
+
|
112
|
+
should "have added an order applied expression with the passed args" do
|
113
|
+
assert_instance_of AppliedExpression, @applied
|
114
|
+
assert_equal :order, @applied.type
|
115
|
+
assert_equal [ :column_a, :column_b ], @applied.args
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
class ReverseOrderTests < UnitTests
|
121
|
+
desc "reverse_order"
|
122
|
+
setup do
|
123
|
+
@relation_spy.reverse_order
|
124
|
+
@applied = subject.applied.first
|
125
|
+
end
|
126
|
+
|
127
|
+
should "have added a reverse order applied expression with the passed args" do
|
128
|
+
assert_instance_of AppliedExpression, @applied
|
129
|
+
assert_equal :reverse_order, @applied.type
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
class GroupTests < UnitTests
|
135
|
+
desc "group"
|
136
|
+
setup do
|
137
|
+
@relation_spy.group :column_a, :column_b
|
138
|
+
@applied = subject.applied.first
|
139
|
+
end
|
140
|
+
|
141
|
+
should "have added a group applied expression with the passed args" do
|
142
|
+
assert_instance_of AppliedExpression, @applied
|
143
|
+
assert_equal :group, @applied.type
|
144
|
+
assert_equal [ :column_a, :column_b ], @applied.args
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|
148
|
+
|
149
|
+
class HavingTests < UnitTests
|
150
|
+
desc "having"
|
151
|
+
setup do
|
152
|
+
@relation_spy.having 'COUNT(column_a) > 0'
|
153
|
+
@applied = subject.applied.first
|
154
|
+
end
|
155
|
+
|
156
|
+
should "have added a having applied expression with the passed args" do
|
157
|
+
assert_instance_of AppliedExpression, @applied
|
158
|
+
assert_equal :having, @applied.type
|
159
|
+
assert_equal [ 'COUNT(column_a) > 0' ], @applied.args
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
class ReadonlyTests < UnitTests
|
165
|
+
desc "readonly"
|
166
|
+
setup do
|
167
|
+
@relation_spy.readonly true
|
168
|
+
@applied = subject.applied.first
|
169
|
+
end
|
170
|
+
|
171
|
+
should "have added a readonly applied expression with the passed args" do
|
172
|
+
assert_instance_of AppliedExpression, @applied
|
173
|
+
assert_equal :readonly, @applied.type
|
174
|
+
assert_equal [ true ], @applied.args
|
98
175
|
end
|
99
176
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
177
|
+
end
|
178
|
+
|
179
|
+
class LimitTests < UnitTests
|
180
|
+
desc "limit"
|
181
|
+
setup do
|
182
|
+
@relation_spy.limit 100
|
183
|
+
@applied = subject.applied.first
|
184
|
+
end
|
185
|
+
|
186
|
+
should "have added a limit applied expression with the passed args" do
|
187
|
+
assert_instance_of AppliedExpression, @applied
|
188
|
+
assert_equal :limit, @applied.type
|
189
|
+
assert_equal [ 100 ], @applied.args
|
107
190
|
end
|
108
191
|
|
109
|
-
should "set it's limit value
|
110
|
-
subject.limit 100
|
192
|
+
should "set it's limit value" do
|
111
193
|
assert_equal 100, subject.limit_value
|
112
194
|
end
|
113
195
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
196
|
+
end
|
197
|
+
|
198
|
+
class OffsetTests < UnitTests
|
199
|
+
desc "offset"
|
200
|
+
setup do
|
201
|
+
@relation_spy.offset 100
|
202
|
+
@applied = subject.applied.first
|
203
|
+
end
|
204
|
+
|
205
|
+
should "have added a offset applied expression with the passed args" do
|
206
|
+
assert_instance_of AppliedExpression, @applied
|
207
|
+
assert_equal :offset, @applied.type
|
208
|
+
assert_equal [ 100 ], @applied.args
|
121
209
|
end
|
122
210
|
|
123
|
-
should "set it's offset value
|
124
|
-
subject.offset 100
|
211
|
+
should "set it's offset value" do
|
125
212
|
assert_equal 100, subject.offset_value
|
126
213
|
end
|
127
214
|
|
128
|
-
|
129
|
-
|
130
|
-
|
215
|
+
end
|
216
|
+
|
217
|
+
class MergeWithARelationSpyTests < UnitTests
|
218
|
+
desc "merge with a relation spy"
|
219
|
+
setup do
|
220
|
+
@other_relation_spy = Ardb::RelationSpy.new.select('column').joins('table')
|
221
|
+
@relation_spy.merge @other_relation_spy
|
222
|
+
end
|
223
|
+
|
224
|
+
should "apply another relation's applied expressions using `merge`" do
|
225
|
+
@other_relation_spy.applied.each do |applied|
|
226
|
+
assert_includes applied, @relation_spy.applied
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
end
|
231
|
+
|
232
|
+
class MergeWithNonRelationSpyTests < UnitTests
|
233
|
+
desc "merge without a relation spy"
|
234
|
+
setup do
|
235
|
+
@fake_relation = 'relation'
|
236
|
+
@relation_spy.merge @fake_relation
|
237
|
+
@applied = subject.applied.first
|
238
|
+
end
|
239
|
+
|
240
|
+
should "have added a merge applied expression with the passed args" do
|
241
|
+
assert_instance_of AppliedExpression, @applied
|
242
|
+
assert_equal :merge, @applied.type
|
243
|
+
assert_equal [ @fake_relation ], @applied.args
|
244
|
+
end
|
245
|
+
|
246
|
+
end
|
247
|
+
|
248
|
+
class MergeWithSelfTests < UnitTests
|
249
|
+
desc "merge with itself"
|
250
|
+
setup do
|
251
|
+
@fake_relation = 'relation'
|
252
|
+
@relation_spy.merge @relation_spy
|
253
|
+
end
|
254
|
+
|
255
|
+
should "not alter the applied expressions" do
|
256
|
+
assert_empty subject.applied
|
257
|
+
end
|
258
|
+
|
259
|
+
end
|
260
|
+
|
261
|
+
class WithExpressionsTests < UnitTests
|
262
|
+
setup do
|
263
|
+
@relation_spy.select('column').includes('table').joins('table')
|
264
|
+
@relation_spy.where(:column => 'value').order('column')
|
265
|
+
@relation_spy.group('column').having('count(*) > 1')
|
266
|
+
@relation_spy.limit(1).offset(1)
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
class ExceptTests < WithExpressionsTests
|
271
|
+
desc "except"
|
272
|
+
|
273
|
+
should "remove any applied expressions in the passed types" do
|
274
|
+
subject.except(:includes, :where, :group, :offset)
|
275
|
+
applied_types = subject.applied.map(&:type)
|
276
|
+
[ :select, :joins, :order, :having, :limit ].each do |type|
|
277
|
+
assert_includes type, applied_types
|
278
|
+
end
|
279
|
+
[ :includes, :where, :group, :offset ].each do |type|
|
280
|
+
assert_not_includes type, applied_types
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
should "unset the limit value if limit is included in the passed types" do
|
285
|
+
subject.except(:select)
|
286
|
+
assert_not_nil subject.limit_value
|
287
|
+
subject.except(:limit)
|
288
|
+
assert_nil subject.limit_value
|
289
|
+
end
|
290
|
+
|
291
|
+
should "unset the offset value if offset is included in the passed types" do
|
292
|
+
subject.except(:select)
|
293
|
+
assert_not_nil subject.offset_value
|
294
|
+
subject.except(:offset)
|
295
|
+
assert_nil subject.offset_value
|
296
|
+
end
|
297
|
+
|
298
|
+
end
|
299
|
+
|
300
|
+
class OnlyTests < WithExpressionsTests
|
301
|
+
desc "only"
|
302
|
+
|
303
|
+
should "remove any applied expressions not in the passed types" do
|
304
|
+
subject.only(:includes, :where, :group, :offset)
|
305
|
+
applied_types = subject.applied.map(&:type)
|
306
|
+
[ :includes, :where, :group, :offset ].each do |type|
|
307
|
+
assert_includes type, applied_types
|
308
|
+
end
|
309
|
+
[ :select, :joins, :order, :having, :limit ].each do |type|
|
310
|
+
assert_not_includes type, applied_types
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
should "unset the limit value if limit is not included in the passed types" do
|
315
|
+
subject.only(:limit)
|
316
|
+
assert_not_nil subject.limit_value
|
317
|
+
subject.only(:select)
|
318
|
+
assert_nil subject.limit_value
|
319
|
+
end
|
320
|
+
|
321
|
+
should "unset the offset value if offset is not included in the passed types" do
|
322
|
+
subject.only(:offset)
|
323
|
+
assert_not_nil subject.offset_value
|
324
|
+
subject.only(:select)
|
325
|
+
assert_nil subject.offset_value
|
326
|
+
end
|
327
|
+
|
328
|
+
end
|
329
|
+
|
330
|
+
class WithResultsTests < UnitTests
|
331
|
+
setup do
|
332
|
+
@results = [*1..5].map{ |id| Result.new(id) }
|
333
|
+
@relation_spy.results = @results
|
334
|
+
end
|
335
|
+
end
|
336
|
+
|
337
|
+
class FindTests < WithResultsTests
|
338
|
+
desc "find"
|
339
|
+
|
340
|
+
should "return a result with the matching id" do
|
341
|
+
result = subject.find(3)
|
342
|
+
assert_equal 3, result.id
|
343
|
+
end
|
344
|
+
|
345
|
+
should "raise a not found error if a result can't be found" do
|
346
|
+
assert_raises(NotFoundError){ subject.find(1000) }
|
347
|
+
end
|
348
|
+
|
349
|
+
end
|
350
|
+
|
351
|
+
class FirstTests < WithResultsTests
|
352
|
+
|
353
|
+
should "return the first item from `all` using `first`" do
|
354
|
+
assert_equal subject.all.first, subject.first
|
355
|
+
subject.offset 2
|
356
|
+
assert_equal subject.all.first, subject.first
|
357
|
+
end
|
358
|
+
|
359
|
+
should "return the first item from `all` or " \
|
360
|
+
"raise an exception if `all` is empty using `first!`" do
|
361
|
+
assert_equal subject.all.first, subject.first!
|
362
|
+
subject.limit 0
|
363
|
+
assert_raises(NotFoundError){ subject.first! }
|
364
|
+
end
|
365
|
+
|
366
|
+
end
|
367
|
+
|
368
|
+
class LastTests < WithResultsTests
|
369
|
+
|
370
|
+
should "return the last item from `all` using `last`" do
|
371
|
+
assert_equal subject.all.last, subject.last
|
372
|
+
subject.limit 2
|
373
|
+
assert_equal subject.all.last, subject.last
|
374
|
+
end
|
375
|
+
|
376
|
+
should "return the last item from `all` or " \
|
377
|
+
"raise an exception if `all` is empty using `last!`" do
|
378
|
+
assert_equal subject.all.last, subject.last!
|
379
|
+
subject.limit 0
|
380
|
+
assert_raises(NotFoundError){ subject.last! }
|
131
381
|
end
|
132
382
|
|
133
|
-
|
134
|
-
|
383
|
+
end
|
384
|
+
|
385
|
+
class AllTests < WithResultsTests
|
386
|
+
desc "all"
|
387
|
+
|
388
|
+
should "return the spy's results" do
|
389
|
+
assert_equal @results, subject.all
|
390
|
+
end
|
135
391
|
|
392
|
+
should "honor limit and offset values" do
|
136
393
|
subject.limit 2
|
137
394
|
subject.offset nil
|
138
|
-
assert_equal [
|
395
|
+
assert_equal @results[0, 2], subject.all
|
139
396
|
|
140
397
|
subject.limit nil
|
141
398
|
subject.offset 3
|
142
|
-
assert_equal [
|
399
|
+
assert_equal @results[3..-1], subject.all
|
143
400
|
|
144
401
|
subject.limit 2
|
145
402
|
subject.offset 2
|
146
|
-
assert_equal [
|
403
|
+
assert_equal @results[2, 2], subject.all
|
147
404
|
end
|
148
405
|
|
149
|
-
|
150
|
-
subject.results = [ 1, 2, 3, 4, 5 ]
|
151
|
-
assert_equal 5, subject.count
|
152
|
-
|
153
|
-
subject.limit 2
|
154
|
-
subject.offset 2
|
155
|
-
assert_equal 2, subject.count
|
156
|
-
end
|
406
|
+
end
|
157
407
|
|
158
|
-
|
159
|
-
|
160
|
-
other_relation.select :column_a
|
161
|
-
assert_not_equal other_relation, subject
|
408
|
+
class CountTests < WithResultsTests
|
409
|
+
desc "count"
|
162
410
|
|
163
|
-
|
164
|
-
assert_equal
|
411
|
+
should "return the size of `all`" do
|
412
|
+
assert_equal subject.all.size, subject.count
|
413
|
+
subject.limit 2
|
414
|
+
assert_equal subject.all.size, subject.count
|
165
415
|
end
|
166
416
|
|
167
417
|
end
|
168
418
|
|
419
|
+
Result = Struct.new(:id)
|
420
|
+
|
169
421
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ardb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 91
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 17
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.17.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly Redding
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2014-01-
|
19
|
+
date: 2014-01-09 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|