record_collection 0.4.6 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/lib/record_collection/base.rb +8 -0
- data/lib/record_collection/version.rb +1 -1
- data/spec/base/accessors_spec.rb +15 -0
- data/spec/base/finding_records_spec.rb +7 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1dfc73354ba9b9a8f5c890106e92e7929f95b702
|
4
|
+
data.tar.gz: 99cf631416ce9a8ec12b1959c785d29b3a1da010
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0df9ecbe183b157a5cbba434d6303ff5b48367ca1fde5510e7cdbf7bd22f35c1bd00e195e70d8109b541c4af7f8fb0d3cba3f5bf466dad2859bbbfc4caa0bab6
|
7
|
+
data.tar.gz: 011cc7ee0db03df40241cbf96a46a9a053b33f8cc340b0c64ccbd421fb8c14f48cbf8864d5ee23799a9bf9e64e4b51c2393631e9500993289eccf2479bd5ad0e
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
@@ -41,11 +41,16 @@ module RecordCollection
|
|
41
41
|
old_validates attr, options
|
42
42
|
end
|
43
43
|
|
44
|
+
#FINDERS
|
44
45
|
def find(ids)
|
45
46
|
raise "Cannot call find on a collection object if there is no record_class defined" unless respond_to?(:record_class) && record_class
|
46
47
|
new(ids.present? ? record_class.find(ids) : [])
|
47
48
|
end
|
48
49
|
|
50
|
+
# Create a new collection with the scope set to the result of the query on the record_class
|
51
|
+
def where(*args)
|
52
|
+
new record_class.where(*args)
|
53
|
+
end
|
49
54
|
end
|
50
55
|
|
51
56
|
def initialize(collection = [], params = {})
|
@@ -115,5 +120,8 @@ module RecordCollection
|
|
115
120
|
results.first
|
116
121
|
end
|
117
122
|
|
123
|
+
def ids
|
124
|
+
@ids ||= map(&:id)
|
125
|
+
end
|
118
126
|
end
|
119
127
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe RecordCollection::Base do
|
4
|
+
|
5
|
+
describe '#ids' do
|
6
|
+
it 'returns the ids of the collection' do
|
7
|
+
employee = Employee.create name: 'E1', section: 'ABC', admin: true, vegan: false
|
8
|
+
described_class.new([employee]).ids.should eq [employee.id]
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns an empty array for an empty collection' do
|
12
|
+
described_class.new.ids.should be_empty
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -26,4 +26,11 @@ RSpec.describe Employee::Collection do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
describe '.where' do
|
30
|
+
it "fills the collection with records coming from the query performed on the record_class" do
|
31
|
+
employee1 = Employee.create name: 'E1', section: 'ABC', admin: true, vegan: false
|
32
|
+
employee2 = Employee.create name: 'E2', section: 'QNP', admin: false, vegan: false
|
33
|
+
described_class.where(admin: false).ids.should eq [employee2.id]
|
34
|
+
end
|
35
|
+
end
|
29
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: record_collection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin ter Kuile
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -284,6 +284,7 @@ extensions: []
|
|
284
284
|
extra_rdoc_files: []
|
285
285
|
files:
|
286
286
|
- ".gitignore"
|
287
|
+
- ".rspec"
|
287
288
|
- ".travis.yml"
|
288
289
|
- Gemfile
|
289
290
|
- LICENSE.txt
|
@@ -307,6 +308,7 @@ files:
|
|
307
308
|
- lib/record_collection/rails/routes.rb
|
308
309
|
- lib/record_collection/version.rb
|
309
310
|
- record_collection.gemspec
|
311
|
+
- spec/base/accessors_spec.rb
|
310
312
|
- spec/base/after_record_update_spec.rb
|
311
313
|
- spec/base/delegation_spec.rb
|
312
314
|
- spec/base/finding_records_spec.rb
|
@@ -405,6 +407,7 @@ signing_key:
|
|
405
407
|
specification_version: 4
|
406
408
|
summary: Manage collections of records in Ruby on Rails
|
407
409
|
test_files:
|
410
|
+
- spec/base/accessors_spec.rb
|
408
411
|
- spec/base/after_record_update_spec.rb
|
409
412
|
- spec/base/delegation_spec.rb
|
410
413
|
- spec/base/finding_records_spec.rb
|