active_record-acts_as 2.0.0 → 2.0.1
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 +29 -0
- data/README.md +1 -1
- data/lib/active_record/acts_as/instance_methods.rb +1 -0
- data/lib/active_record/acts_as/relation.rb +2 -1
- data/lib/active_record/acts_as/version.rb +1 -1
- data/spec/acts_as_spec.rb +6 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62e3d1c5bebab4cf760006974c27a8393197e62e
|
4
|
+
data.tar.gz: c003401bb8d69ac018c8703d6fe6dc1a80a11692
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 531a5d66cf6fd9b9063171fd1eeeac403291fa993205c930986c7702a65220a25eb3c8fdb3bf8f059446e74aaff102e2397376f23feeb490fba5bbaeb170d14b
|
7
|
+
data.tar.gz: f31b4cb3855400b7b5809ac46a33897fc8895f4f8aefd8a4c51ea57fe09b3a07988ab66ec9d3eb70f819519fa56f42b438040e952b98f6de60ee9881733fc43a
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Change Log
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
5
|
+
and this project adheres to [Semantic Versioning](http://semver.org/).
|
6
|
+
|
7
|
+
## [2.0.0] - 2016-09-14
|
8
|
+
### Added
|
9
|
+
- Added support for Rails 5 (https://github.com/hzamani/active_record-acts_as/pull/80, thanks to [nicklandgrebe](https://github.com/nicklandgrebe)!)
|
10
|
+
- Allow specifying `association_method` parameter (https://github.com/hzamani/active_record-acts_as/pull/72, thanks to [tombowo](https://github.com/tombowo)!)
|
11
|
+
|
12
|
+
### Removed
|
13
|
+
- Dropped support for Ruby < 2.2 and ActiveSupport/ActiveRecord < 4.2
|
14
|
+
|
15
|
+
### Fixed
|
16
|
+
- Fixed `remove_actable` migration helper (https://github.com/hzamani/active_record-acts_as/pull/71, thanks to [nuclearpidgeon](https://github.com/nuclearpidgeon)!)
|
17
|
+
|
18
|
+
[Unreleased]: https://github.com/hzamani/active_record-acts_as/compare/v2.0.0...HEAD
|
19
|
+
[2.0.0]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.8...v2.0.0
|
20
|
+
[1.0.8]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.7...v1.0.8
|
21
|
+
[1.0.7]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.6...v1.0.7
|
22
|
+
[1.0.6]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.5...v1.0.6
|
23
|
+
[1.0.5]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.4...v1.0.5
|
24
|
+
[1.0.4]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.3...v1.0.4
|
25
|
+
[1.0.3]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.2...v1.0.3
|
26
|
+
[1.0.2]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.1...v1.0.2
|
27
|
+
[1.0.1]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.0...v1.0.1
|
28
|
+
[1.0.0]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.0.rc...v1.0.0
|
29
|
+
[1.0.0.rc]: https://github.com/hzamani/active_record-acts_as/compare/v1.0.0.pre...v1.0.0.rc
|
data/README.md
CHANGED
@@ -91,7 +91,7 @@ end
|
|
91
91
|
**Make sure** that column names do not match on parent and subclass tables,
|
92
92
|
that will make SQL statements ambiguous and invalid!
|
93
93
|
Specially **DO NOT** use timestamps on subclasses, if you need them define them
|
94
|
-
on parent table and they will be touched after submodel updates.
|
94
|
+
on parent table and they will be touched after submodel updates (You can use the option `touch: false` to skip this behaviour).
|
95
95
|
|
96
96
|
Now `Pen` and `Book` **acts as** `Product`, i.e. they inherit `Product`s **attributes**,
|
97
97
|
**methods** and **validations**. Now you can do things like these:
|
@@ -8,6 +8,7 @@ module ActiveRecord
|
|
8
8
|
def acts_as(name, scope = nil, options = {})
|
9
9
|
options, scope = scope, nil if Hash === scope
|
10
10
|
association_method = options.delete(:association_method)
|
11
|
+
touch = options.delete(:touch)
|
11
12
|
options = {as: :actable, dependent: :destroy, validate: false, autosave: true}.merge options
|
12
13
|
|
13
14
|
cattr_reader(:validates_actable) { options.delete(:validates_actable) == false ? false : true }
|
@@ -24,7 +25,7 @@ module ActiveRecord
|
|
24
25
|
end
|
25
26
|
}
|
26
27
|
validate :actable_must_be_valid
|
27
|
-
after_update :touch_actable
|
28
|
+
after_update :touch_actable unless touch == false
|
28
29
|
|
29
30
|
cattr_reader(:acting_as_reflection) { reflections.stringify_keys[name.to_s] }
|
30
31
|
cattr_reader(:acting_as_name) { name.to_s }
|
data/spec/acts_as_spec.rb
CHANGED
@@ -223,6 +223,12 @@ RSpec.describe "ActiveRecord::Base model with #acts_as called" do
|
|
223
223
|
expect(pen.updated_at).not_to eq(update)
|
224
224
|
end
|
225
225
|
|
226
|
+
it "touches supermodel only when attributes changed" do
|
227
|
+
pen.save
|
228
|
+
|
229
|
+
expect { pen.save }.to_not change { pen.reload.product.updated_at }
|
230
|
+
end
|
231
|
+
|
226
232
|
it "raises NoMethodEror on unexisting method call" do
|
227
233
|
expect { pen.unexisted_method }.to raise_error(NoMethodError)
|
228
234
|
end
|
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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hassan Zamani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqlite3
|
@@ -120,6 +120,7 @@ files:
|
|
120
120
|
- ".rspec"
|
121
121
|
- ".travis.yml"
|
122
122
|
- Appraisals
|
123
|
+
- CHANGELOG.md
|
123
124
|
- Gemfile
|
124
125
|
- LICENSE.txt
|
125
126
|
- README.md
|