active_type 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|