enumerize 0.2.0 → 0.2.1

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