active_enum 0.6.3 → 0.6.4

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.
@@ -26,8 +26,6 @@ module ActiveEnum
26
26
  # enumerate :to, :from, :with => Sex
27
27
  #
28
28
  def enumerate(*attributes, &block)
29
- define_attribute_methods unless generated_methods?
30
-
31
29
  options = attributes.extract_options!
32
30
  attributes.each do |attribute|
33
31
  begin
@@ -64,6 +62,8 @@ module ActiveEnum
64
62
  # user.sex(:enum)
65
63
  #
66
64
  def define_active_enum_read_method(attribute)
65
+ define_read_method(attribute, attribute.to_s, columns_hash[attribute.to_s]) unless instance_method_already_implemented?(attribute.to_s)
66
+
67
67
  old_method = "#{attribute}_without_enum"
68
68
  define_method("#{attribute}_with_enum") do |*arg|
69
69
  arg = arg.first
@@ -91,6 +91,8 @@ module ActiveEnum
91
91
  # user.sex = :male
92
92
  #
93
93
  def define_active_enum_write_method(attribute)
94
+ define_write_method(attribute) unless instance_method_already_implemented?("#{attribute}=")
95
+
94
96
  old_method = "#{attribute}_without_enum="
95
97
  define_method("#{attribute}_with_enum=") do |arg|
96
98
  enum = self.class.enum_for(attribute)
@@ -102,7 +104,7 @@ module ActiveEnum
102
104
  end
103
105
  end
104
106
 
105
- alias_method_chain "#{attribute}=".to_sym, :enum
107
+ alias_method_chain :"#{attribute}=", :enum
106
108
  end
107
109
 
108
110
  # Define question method to check enum value against attribute value
@@ -110,6 +112,8 @@ module ActiveEnum
110
112
  # user.sex?(:male)
111
113
  #
112
114
  def define_active_enum_question_method(attribute)
115
+ define_question_method(attribute) unless instance_method_already_implemented?("#{attribute}?")
116
+
113
117
  old_method = "#{attribute}_without_enum?"
114
118
  define_method("#{attribute}_with_enum?") do |*arg|
115
119
  arg = arg.first
@@ -119,7 +123,7 @@ module ActiveEnum
119
123
  send(old_method)
120
124
  end
121
125
  end
122
- alias_method_chain "#{attribute}?".to_sym, :enum
126
+ alias_method_chain :"#{attribute}?", :enum
123
127
  end
124
128
 
125
129
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveEnum
2
- VERSION = '0.6.3'
2
+ VERSION = '0.6.4'
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -20,9 +20,10 @@ module SpecHelper
20
20
  def reset_class(klass, &block)
21
21
  name = klass.name.to_sym
22
22
  Object.send(:remove_const, name)
23
- Object.const_set(name, Class.new(ActiveRecord::Base))
23
+ eval "class #{klass}#{' < ' + klass.superclass.to_s if klass.superclass != Class}; end", TOPLEVEL_BINDING
24
24
  new_klass = Object.const_get(name)
25
25
  new_klass.class_eval &block if block_given?
26
+ new_klass
26
27
  end
27
28
  end
28
29
 
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 6
8
+ - 4
9
+ version: 0.6.4
5
10
  platform: ruby
6
11
  authors:
7
12
  - Adam Meehan
@@ -9,7 +14,7 @@ autorequire: active_enum
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-03-18 00:00:00 +11:00
17
+ date: 2010-04-26 00:00:00 +10:00
13
18
  default_executable:
14
19
  dependencies: []
15
20
 
@@ -51,18 +56,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
51
56
  requirements:
52
57
  - - ">="
53
58
  - !ruby/object:Gem::Version
59
+ segments:
60
+ - 0
54
61
  version: "0"
55
- version:
56
62
  required_rubygems_version: !ruby/object:Gem::Requirement
57
63
  requirements:
58
64
  - - ">="
59
65
  - !ruby/object:Gem::Version
66
+ segments:
67
+ - 0
60
68
  version: "0"
61
- version:
62
69
  requirements: []
63
70
 
64
71
  rubyforge_project: active_enum
65
- rubygems_version: 1.3.5
72
+ rubygems_version: 1.3.6
66
73
  signing_key:
67
74
  specification_version: 3
68
75
  summary: Define enum classes in Rails and use them to enumerate ActiveRecord attributes