enumerize 0.2.0 → 0.2.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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.2.1 (May 21, 2012) ##
2
+
3
+ ### bug fix
4
+ * Call super in attribute accessors if available (by [@lest](https://github.com/lest))
5
+
1
6
  ## 0.2.0 (March 29, 2012) ##
2
7
 
3
8
  ### enhancements
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'rake'
6
- gem 'minitest', '~> 2.11.0'
6
+ gem 'minitest', '~> 2.12.0'
7
7
  gem 'mocha'
8
8
 
9
9
  gem 'activerecord', '~> 3.2.0'
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
3
3
  gem 'enumerize', :path => '..'
4
4
 
5
5
  gem 'rake'
6
- gem 'minitest', '~> 2.11.0'
6
+ gem 'minitest', '~> 2.12.0'
7
7
  gem 'mocha'
8
8
 
9
9
  gem 'activerecord', '~> 3.1.0'
@@ -58,7 +58,9 @@ module Enumerize
58
58
  def _define_enumerize_attribute(attr)
59
59
  _enumerize_module.module_eval <<-RUBY, __FILE__, __LINE__ + 1
60
60
  def #{attr.name}
61
- if respond_to?(:read_attribute, true)
61
+ if defined?(super)
62
+ self.class.enumerized_attributes[:#{attr.name}].find_value(super)
63
+ elsif respond_to?(:read_attribute, true)
62
64
  self.class.enumerized_attributes[:#{attr.name}].find_value(read_attribute(:#{attr.name}))
63
65
  else
64
66
  if defined?(@#{attr.name})
@@ -75,7 +77,9 @@ module Enumerize
75
77
  allowed_value_or_nil = self.class.enumerized_attributes[:#{attr.name}].find_value(new_value)
76
78
  allowed_value_or_nil = allowed_value_or_nil.to_s unless allowed_value_or_nil.nil?
77
79
 
78
- if respond_to?(:write_attribute, true)
80
+ if defined?(super)
81
+ super allowed_value_or_nil
82
+ elsif respond_to?(:write_attribute, true)
79
83
  write_attribute :#{attr.name}, allowed_value_or_nil
80
84
  else
81
85
  @#{attr.name} = allowed_value_or_nil
@@ -1,3 +1,3 @@
1
1
  module Enumerize
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/test/base_test.rb CHANGED
@@ -136,4 +136,35 @@ describe Enumerize::Base do
136
136
  object.foo = nil
137
137
  object.read_attribute_for_validation(:foo).must_equal nil
138
138
  end
139
+
140
+ it 'calls super in the accessor method' do
141
+ accessors = Module.new do
142
+ def attributes
143
+ @attributes ||= {}
144
+ end
145
+
146
+ def foo
147
+ attributes[:foo]
148
+ end
149
+
150
+ def foo=(v)
151
+ attributes[:foo] = v
152
+ end
153
+ end
154
+
155
+ klass = Class.new do
156
+ include accessors
157
+ include Enumerize
158
+
159
+ enumerize :foo, :in => %w[test]
160
+ end
161
+
162
+ object = klass.new
163
+ object.foo.must_be_nil
164
+ object.attributes.must_equal({:foo => nil})
165
+
166
+ object.foo = 'test'
167
+ object.foo.must_equal 'test'
168
+ object.attributes.must_equal(:foo => 'test')
169
+ end
139
170
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumerize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-29 00:00:00.000000000 Z
12
+ date: 2012-05-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &6744160 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,12 @@ dependencies:
21
21
  version: 3.1.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *6744160
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.1.3
25
30
  description: Enumerated attributes with I18n and ActiveRecord/Mongoid support
26
31
  email: info@twinslash.com
27
32
  executables: []
@@ -73,7 +78,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
73
78
  version: '0'
74
79
  segments:
75
80
  - 0
76
- hash: -1144009341206974926
81
+ hash: 2467597256699098975
77
82
  required_rubygems_version: !ruby/object:Gem::Requirement
78
83
  none: false
79
84
  requirements:
@@ -82,10 +87,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
87
  version: '0'
83
88
  segments:
84
89
  - 0
85
- hash: -1144009341206974926
90
+ hash: 2467597256699098975
86
91
  requirements: []
87
92
  rubyforge_project:
88
- rubygems_version: 1.8.11
93
+ rubygems_version: 1.8.23
89
94
  signing_key:
90
95
  specification_version: 3
91
96
  summary: Enumerated attributes with I18n and ActiveRecord/Mongoid support