serialize_with_coder 0.1.1 → 0.1.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.
@@ -38,23 +38,17 @@ module SerializeWithCoder
38
38
  define_method("#{attr_name}_changed?") do
39
39
  class_name.load( read_attribute(attr_name) ) != send(attr_name)
40
40
  end
41
- end
42
- else
43
- raise "There is no column named #{attr_name}!"
44
- end
45
41
 
46
- define_method("attribute_for_inspect") do |attr_name|
47
- value = @@serialized_with_coder_fields[attr_name.to_sym] ?
48
- send(attr_name) :
49
- read_attribute(attr_name)
42
+ define_method("#{attr_name}_change") do
43
+ send("#{attr_name}_changed?") ? [send("#{attr_name}_was"), send(attr_name)] : nil
44
+ end
50
45
 
51
- if value.is_a?(String) && value.length > 50
52
- "#{value[0..50]}...".inspect
53
- elsif value.is_a?(Date) || value.is_a?(Time)
54
- %("#{value.to_s(:db)}")
55
- else
56
- value.inspect
46
+ define_method("#{attr_name}_was") do
47
+ class_name.load( read_attribute(attr_name) )
48
+ end
57
49
  end
50
+ else
51
+ raise "There is no column named #{attr_name}!"
58
52
  end
59
53
 
60
54
  define_method("synchronize_serialized_fields") do
@@ -67,4 +61,4 @@ module SerializeWithCoder
67
61
  end
68
62
  end
69
63
 
70
- ActiveRecord::Base.extend(SerializeWithCoder::ClassMethods)
64
+ ActiveRecord::Base.extend(SerializeWithCoder::ClassMethods)
@@ -98,4 +98,28 @@ class SerializeWithCoderTest < Test::Unit::TestCase
98
98
  assert user.notes.include?(@note2)
99
99
  end
100
100
 
101
+ def test_changed
102
+ assert !@user.newsletters_changed?
103
+
104
+ @user.newsletters = ["FREE", "PREMIUM"]
105
+
106
+ assert @user.newsletters_changed?
107
+ end
108
+
109
+ def test_change
110
+ assert_nil @user.newsletters_change
111
+
112
+ @user.newsletters = ["FREE", "PREMIUM"]
113
+
114
+ assert_equal [[], ["FREE", "PREMIUM"]], @user.newsletters_change
115
+ end
116
+
117
+ def test_was
118
+ assert_equal [], @user.newsletters_was
119
+
120
+ @user.newsletters = ["FREE", "PREMIUM"]
121
+
122
+ assert_equal [], @user.newsletters_was
123
+ end
124
+
101
125
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serialize_with_coder
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Maciej Gajek
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-11-13 00:00:00 +01:00
18
+ date: 2011-11-15 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency