active_type 0.4.1 → 0.4.2
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/gemfiles/Gemfile.3.2.lock +1 -1
- data/gemfiles/Gemfile.4.0.lock +1 -1
- data/gemfiles/Gemfile.4.1.lock +1 -1
- data/gemfiles/Gemfile.4.2.1.lock +1 -1
- data/gemfiles/Gemfile.4.2.1.pg.lock +1 -1
- data/lib/active_type/version.rb +1 -1
- data/lib/active_type/virtual_attributes.rb +9 -5
- data/spec/shared_examples/dirty_tracking.rb +9 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 68b30f74cacafd71c8c3cdeb7a16f0819bbe5826
|
|
4
|
+
data.tar.gz: 347ebc899df117c5265c505aec13bb6f77a4f82b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c13099db232d67a515d3a2a417d2bf3a95549ca69a9772a27e128fef1dffaa20caae45990b16a16ee3745482c11f7b58a737075ba97284057ea6b476fbdbb4ae
|
|
7
|
+
data.tar.gz: 23b0da781115e740380532c8092abb3bb74d175e99b56b7d46cdb9fec82e4161568794d95505ce4582822935c1d38d5c5f9a562b25b8ca97258aee7ede110009
|
data/gemfiles/Gemfile.3.2.lock
CHANGED
data/gemfiles/Gemfile.4.0.lock
CHANGED
data/gemfiles/Gemfile.4.1.lock
CHANGED
data/gemfiles/Gemfile.4.2.1.lock
CHANGED
data/lib/active_type/version.rb
CHANGED
|
@@ -40,8 +40,7 @@ module ActiveType
|
|
|
40
40
|
add_virtual_column(name, type, options)
|
|
41
41
|
build_reader(name)
|
|
42
42
|
build_writer(name)
|
|
43
|
-
|
|
44
|
-
build_value_changed_method(name)
|
|
43
|
+
build_dirty_tracking_methods(name)
|
|
45
44
|
end
|
|
46
45
|
|
|
47
46
|
private
|
|
@@ -72,20 +71,25 @@ module ActiveType
|
|
|
72
71
|
BODY
|
|
73
72
|
end
|
|
74
73
|
|
|
75
|
-
|
|
74
|
+
# Methods for compatibility with gems expecting the ActiveModel::Dirty API.
|
|
75
|
+
def build_dirty_tracking_methods(name)
|
|
76
76
|
@module.module_eval <<-BODY, __FILE__, __LINE__ + 1
|
|
77
77
|
def #{name}_was
|
|
78
78
|
nil
|
|
79
79
|
end
|
|
80
80
|
BODY
|
|
81
|
-
end
|
|
82
81
|
|
|
83
|
-
def build_value_changed_method(name)
|
|
84
82
|
@module.module_eval <<-BODY, __FILE__, __LINE__ + 1
|
|
85
83
|
def #{name}_changed?
|
|
86
84
|
not #{name}.nil?
|
|
87
85
|
end
|
|
88
86
|
BODY
|
|
87
|
+
|
|
88
|
+
@module.module_eval <<-BODY, __FILE__, __LINE__ + 1
|
|
89
|
+
def #{name}_will_change!
|
|
90
|
+
# no-op
|
|
91
|
+
end
|
|
92
|
+
BODY
|
|
89
93
|
end
|
|
90
94
|
|
|
91
95
|
def validate_attribute_name!(name)
|
|
@@ -28,4 +28,13 @@ shared_examples_for "a class supporting dirty tracking for virtual attributes" d
|
|
|
28
28
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
describe '#virtual_attribute_will_change!' do
|
|
32
|
+
|
|
33
|
+
it 'is implemented for compatibility with ActiveModel::Dirty, but does nothing' do
|
|
34
|
+
subject.should respond_to(:virtual_attribute_will_change!)
|
|
35
|
+
expect { subject.virtual_attribute_will_change! }.to_not raise_error
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
|
|
31
40
|
end
|