record_collection 0.4.5 → 0.4.6
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/record_collection/base.rb +14 -1
- data/lib/record_collection/version.rb +1 -1
- data/spec/base/after_record_update_spec.rb +14 -0
- data/spec/spec_helper.rb +4 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d78564aff4c9d3493bf4e5c3cfe0adcd45dc1dd
|
4
|
+
data.tar.gz: 9caf058b010b857cdc2130e78f104eac76a8bf43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da13c3bd14acad5192abacdf8cfe328a95c09611e01a2811d615cf89d5c420c78ed63f00a4da523f5031ba1ce6c750ba8e17e5c8d37891f5fe6b90b902adecc7
|
7
|
+
data.tar.gz: 330143a4fb2164d75ec1fad8f2d8292e213a418464ffd7991691ded829ae6630f3ba5476b6c80a982a91b6c9918ff981e3a8444f1551501c57a66b80dcdde818
|
@@ -24,6 +24,14 @@ module RecordCollection
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
def after_record_update(&blk)
|
28
|
+
if blk
|
29
|
+
@after_record_update = blk
|
30
|
+
else
|
31
|
+
@after_record_update
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
27
35
|
alias_method :old_validates, :validates
|
28
36
|
def validates(attr, options)
|
29
37
|
# Collection nil attributes mean they do not play a role for the collection.
|
@@ -66,7 +74,12 @@ module RecordCollection
|
|
66
74
|
end
|
67
75
|
|
68
76
|
def update_collection_attributes!
|
69
|
-
|
77
|
+
after_blk = self.class.after_record_update
|
78
|
+
each do |record|
|
79
|
+
record.update changed_attributes
|
80
|
+
after_blk.call(record) if after_blk
|
81
|
+
end
|
82
|
+
self
|
70
83
|
end
|
71
84
|
|
72
85
|
def changed_attributes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
class AfterRecordUpdateCollection < RecordCollection::Base
|
3
|
+
attribute :section
|
4
|
+
after_record_update{|record| record.update(admin: true) }
|
5
|
+
end
|
6
|
+
RSpec.describe AfterRecordUpdateCollection do
|
7
|
+
subject { described_class.new }
|
8
|
+
it "executes on the record" do
|
9
|
+
employee = Employee.create section: 'SE1', admin: false
|
10
|
+
described_class.new([employee]).update({})
|
11
|
+
employee.reload
|
12
|
+
employee.admin.should be true
|
13
|
+
end
|
14
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -20,6 +20,10 @@ RSpec.configure do |config|
|
|
20
20
|
config.mock_with :rspec
|
21
21
|
config.include Dummy::Application.routes.url_helpers, type: :feature
|
22
22
|
|
23
|
+
config.before :each do
|
24
|
+
Employee.delete_all
|
25
|
+
end
|
26
|
+
|
23
27
|
config.expect_with :rspec do |c|
|
24
28
|
c.syntax = [:should, :expect]
|
25
29
|
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.
|
4
|
+
version: 0.4.6
|
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-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -307,6 +307,7 @@ files:
|
|
307
307
|
- lib/record_collection/rails/routes.rb
|
308
308
|
- lib/record_collection/version.rb
|
309
309
|
- record_collection.gemspec
|
310
|
+
- spec/base/after_record_update_spec.rb
|
310
311
|
- spec/base/delegation_spec.rb
|
311
312
|
- spec/base/finding_records_spec.rb
|
312
313
|
- spec/base/validations_spec.rb
|
@@ -404,6 +405,7 @@ signing_key:
|
|
404
405
|
specification_version: 4
|
405
406
|
summary: Manage collections of records in Ruby on Rails
|
406
407
|
test_files:
|
408
|
+
- spec/base/after_record_update_spec.rb
|
407
409
|
- spec/base/delegation_spec.rb
|
408
410
|
- spec/base/finding_records_spec.rb
|
409
411
|
- spec/base/validations_spec.rb
|