active_record-acts_as 2.0.5 → 2.0.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/CHANGELOG.md +12 -1
- data/lib/active_record/acts_as/instance_methods.rb +2 -2
- data/lib/active_record/acts_as/version.rb +1 -1
- data/spec/acts_as_spec.rb +18 -1
- data/spec/models.rb +10 -0
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c9748df03b3540052a5ffdc565d4e7e1533c295
|
4
|
+
data.tar.gz: 6e9bd73f2ca3999edc268e6c40b12510bc76e46c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5103fa9f9a3e0cc57ab76270ca05db23008938c7090aa0af4bb9c0fce2b9a4e947a804d512138f4560ceae982e1e15f63bb9073b8ad1d0b15533f1592a23b5ab
|
7
|
+
data.tar.gz: b00229a569085953c49aff5095fc6b1475916cd50979172e84c1cca6f9b790f1a005761aa498745bd14978d484f91a3885a81b841ca639e389d76c252bdb1e90
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
|
+
## [2.0.6] - 2017-02-17
|
8
|
+
### Added
|
9
|
+
- Allow arguments to #touch and forward them to the supermodel
|
10
|
+
|
11
|
+
## [2.0.5] - 2016-12-20
|
12
|
+
### Fixed
|
13
|
+
- Don't try to touch supermodel if it's not persisted
|
14
|
+
- Call `#destroy`, not `#delete`, on the submodule by default to trigger callbacks
|
15
|
+
|
7
16
|
## [2.0.4] - 2016-12-07
|
8
17
|
### Fixed
|
9
18
|
- Touch associated objects if supermodel is updated
|
@@ -32,7 +41,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
32
41
|
### Fixed
|
33
42
|
- Fixed `remove_actable` migration helper (https://github.com/hzamani/active_record-acts_as/pull/71, thanks to [nuclearpidgeon](https://github.com/nuclearpidgeon)!)
|
34
43
|
|
35
|
-
[Unreleased]: https://github.com/hzamani/active_record-acts_as/compare/v2.0.
|
44
|
+
[Unreleased]: https://github.com/hzamani/active_record-acts_as/compare/v2.0.6...HEAD
|
45
|
+
[2.0.6]: https://github.com/hzamani/active_record-acts_as/compare/v2.0.5...v2.0.6
|
46
|
+
[2.0.5]: https://github.com/hzamani/active_record-acts_as/compare/v2.0.4...v2.0.5
|
36
47
|
[2.0.4]: https://github.com/hzamani/active_record-acts_as/compare/v2.0.3...v2.0.4
|
37
48
|
[2.0.3]: https://github.com/hzamani/active_record-acts_as/compare/v2.0.2...v2.0.3
|
38
49
|
[2.0.2]: https://github.com/hzamani/active_record-acts_as/compare/v2.0.1...v2.0.2
|
data/spec/acts_as_spec.rb
CHANGED
@@ -230,6 +230,12 @@ RSpec.describe "ActiveRecord::Base model with #acts_as called" do
|
|
230
230
|
end
|
231
231
|
|
232
232
|
context "touching" do
|
233
|
+
it "forwards arguments to #touch to the supermodel" do
|
234
|
+
pen.save!
|
235
|
+
expect(pen.product).to receive(:touch).with(:one, :two)
|
236
|
+
pen.touch(:one, :two)
|
237
|
+
end
|
238
|
+
|
233
239
|
it "touches supermodel on save" do
|
234
240
|
pen.save
|
235
241
|
pen.reload
|
@@ -266,11 +272,22 @@ RSpec.describe "ActiveRecord::Base model with #acts_as called" do
|
|
266
272
|
end
|
267
273
|
end
|
268
274
|
|
275
|
+
context "polymorphic associations" do
|
276
|
+
it "handles them correctly" do
|
277
|
+
payment = Payment.new
|
278
|
+
pen.payment = payment
|
279
|
+
pen.save!
|
280
|
+
expect(pen.reload.payment).to eq(payment)
|
281
|
+
expect(pen.payment.payable_type).to eq(pen.acting_as.class.to_s)
|
282
|
+
expect(pen.payment.payable_id).to eq(pen.acting_as.id)
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
269
286
|
it "raises NoMethodEror on unexisting method call" do
|
270
287
|
expect { pen.unexisted_method }.to raise_error(NoMethodError)
|
271
288
|
end
|
272
289
|
|
273
|
-
it "
|
290
|
+
it "destroys Supermodel on destroy" do
|
274
291
|
pen.save
|
275
292
|
product_id = pen.product.id
|
276
293
|
pen.destroy
|
data/spec/models.rb
CHANGED
@@ -5,6 +5,7 @@ class Product < ActiveRecord::Base
|
|
5
5
|
actable
|
6
6
|
belongs_to :store, touch: true
|
7
7
|
has_many :buyers, dependent: :destroy
|
8
|
+
has_one :payment, as: :payable
|
8
9
|
validates_presence_of :name, :price
|
9
10
|
store :settings, accessors: [:global_option]
|
10
11
|
|
@@ -17,6 +18,10 @@ class Product < ActiveRecord::Base
|
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
21
|
+
class Payment < ActiveRecord::Base
|
22
|
+
belongs_to :payable, polymorphic: true
|
23
|
+
end
|
24
|
+
|
20
25
|
class PenCollection < ActiveRecord::Base
|
21
26
|
has_many :pens
|
22
27
|
end
|
@@ -90,6 +95,11 @@ def initialize_schema
|
|
90
95
|
t.actable
|
91
96
|
end
|
92
97
|
|
98
|
+
create_table :payments do |t|
|
99
|
+
t.references :payable, polymorphic: true
|
100
|
+
t.timestamps null: true
|
101
|
+
end
|
102
|
+
|
93
103
|
create_table :stores do |t|
|
94
104
|
t.string :name
|
95
105
|
t.timestamps null: true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_record-acts_as
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hassan Zamani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqlite3
|
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
164
|
version: '0'
|
165
165
|
requirements: []
|
166
166
|
rubyforge_project:
|
167
|
-
rubygems_version: 2.6.
|
167
|
+
rubygems_version: 2.6.8
|
168
168
|
signing_key:
|
169
169
|
specification_version: 4
|
170
170
|
summary: Simulate multi-table inheritance for activerecord models
|
@@ -177,4 +177,3 @@ test_files:
|
|
177
177
|
- spec/models.rb
|
178
178
|
- spec/rspec_matchers_spec.rb
|
179
179
|
- spec/spec_helper.rb
|
180
|
-
has_rdoc:
|