classy_enum 1.0.0 → 1.1.0

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/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.2
data/Gemfile CHANGED
@@ -8,5 +8,5 @@ group :development do
8
8
  gem "rspec-rails", "~> 2.6.1"
9
9
  gem 'formtastic', '~> 1.2.4'
10
10
  gem 'sqlite3-ruby', :require => 'sqlite3'
11
- gem 'ruby-debug'
11
+ gem 'ruby-debug19'
12
12
  end
data/Gemfile.lock CHANGED
@@ -28,9 +28,10 @@ GEM
28
28
  activemodel (= 3.0.5)
29
29
  activesupport (= 3.0.5)
30
30
  activesupport (3.0.5)
31
+ archive-tar-minitar (0.5.2)
31
32
  arel (2.0.10)
32
33
  builder (2.1.2)
33
- columnize (0.3.2)
34
+ columnize (0.3.4)
34
35
  diff-lcs (1.1.2)
35
36
  erubis (2.6.6)
36
37
  abstract (>= 1.0.0)
@@ -44,7 +45,8 @@ GEM
44
45
  bundler (~> 1.0)
45
46
  git (>= 1.2.5)
46
47
  rake
47
- linecache (0.43)
48
+ linecache19 (0.5.12)
49
+ ruby_core_source (>= 0.1.4)
48
50
  mail (2.2.19)
49
51
  activesupport (>= 2.3.6)
50
52
  i18n (>= 0.4.0)
@@ -85,11 +87,16 @@ GEM
85
87
  activesupport (~> 3.0)
86
88
  railties (~> 3.0)
87
89
  rspec (~> 2.6.0)
88
- ruby-debug (0.10.4)
89
- columnize (>= 0.1)
90
- ruby-debug-base (~> 0.10.4.0)
91
- ruby-debug-base (0.10.4)
92
- linecache (>= 0.3)
90
+ ruby-debug-base19 (0.11.25)
91
+ columnize (>= 0.3.1)
92
+ linecache19 (>= 0.5.11)
93
+ ruby_core_source (>= 0.1.4)
94
+ ruby-debug19 (0.11.6)
95
+ columnize (>= 0.3.1)
96
+ linecache19 (>= 0.5.11)
97
+ ruby-debug-base19 (>= 0.11.19)
98
+ ruby_core_source (0.1.5)
99
+ archive-tar-minitar (>= 0.5.2)
93
100
  sqlite3-ruby (1.3.1)
94
101
  thor (0.14.6)
95
102
  treetop (1.4.9)
@@ -105,5 +112,5 @@ DEPENDENCIES
105
112
  rails (~> 3.0.0)
106
113
  rcov
107
114
  rspec-rails (~> 2.6.1)
108
- ruby-debug
115
+ ruby-debug19
109
116
  sqlite3-ruby
data/README.textile CHANGED
@@ -2,11 +2,15 @@ h1. classy_enum
2
2
 
3
3
  ClassyEnum is a Ruby on Rails gem that adds class-based enumerator functionality to ActiveRecord attributes.
4
4
 
5
- h2. Requirements
5
+ h2. Rails & Ruby Versions Supported
6
6
 
7
- *Rails:* 3.0.x. If you need support for Rails 2.3.x, please install "version 0.9.1":https://rubygems.org/gems/classy_enum/versions/0.9.1
7
+ *Rails:*
8
8
 
9
- *Ruby:* Ruby 1.8.7 and 1.9.2.
9
+ * 3.1.0.rc: Mostly functional, known issue with using uniqueness validation with ClassyEnum attribute as a scope
10
+ * 3.0.0 - 3.0.9: Fully tested in a production application, no known issues
11
+ * 2.3.x: If you need support for Rails 2.3.x, please install "version 0.9.1":https://rubygems.org/gems/classy_enum/versions/0.9.1
12
+
13
+ *Ruby:* Ruby 1.8.7 and 1.9.2 both tested and supported
10
14
 
11
15
  h2. Installation
12
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
data/classy_enum.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{classy_enum}
8
- s.version = "1.0.0"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Peter Brown}]
12
- s.date = %q{2011-06-29}
12
+ s.date = %q{2011-07-25}
13
13
  s.description = %q{A utility that adds class based enum functionality to ActiveRecord attributes}
14
14
  s.email = %q{github@lette.us}
15
15
  s.extra_rdoc_files = [
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
+ ".rvmrc",
21
22
  "Gemfile",
22
23
  "Gemfile.lock",
23
24
  "LICENSE",
@@ -27,7 +28,6 @@ Gem::Specification.new do |s|
27
28
  "classy_enum.gemspec",
28
29
  "init.rb",
29
30
  "lib/classy_enum.rb",
30
- "lib/classy_enum/active_record.rb",
31
31
  "lib/classy_enum/attributes.rb",
32
32
  "lib/classy_enum/base.rb",
33
33
  "lib/classy_enum/class_methods.rb",
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
37
37
  "lib/generators/classy_enum/templates/enum.rb",
38
38
  "spec/active_record_spec.rb",
39
39
  "spec/classy_enum_attributes_spec.rb",
40
+ "spec/classy_enum_migration_spec.rb",
40
41
  "spec/classy_enum_semantic_form_builder_spec.rb",
41
42
  "spec/classy_enum_spec.rb",
42
43
  "spec/spec_helper.rb"
@@ -57,7 +58,7 @@ Gem::Specification.new do |s|
57
58
  s.add_development_dependency(%q<rspec-rails>, ["~> 2.6.1"])
58
59
  s.add_development_dependency(%q<formtastic>, ["~> 1.2.4"])
59
60
  s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
60
- s.add_development_dependency(%q<ruby-debug>, [">= 0"])
61
+ s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
61
62
  else
62
63
  s.add_dependency(%q<rails>, ["~> 3.0.0"])
63
64
  s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
@@ -65,7 +66,7 @@ Gem::Specification.new do |s|
65
66
  s.add_dependency(%q<rspec-rails>, ["~> 2.6.1"])
66
67
  s.add_dependency(%q<formtastic>, ["~> 1.2.4"])
67
68
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
68
- s.add_dependency(%q<ruby-debug>, [">= 0"])
69
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
69
70
  end
70
71
  else
71
72
  s.add_dependency(%q<rails>, ["~> 3.0.0"])
@@ -74,7 +75,7 @@ Gem::Specification.new do |s|
74
75
  s.add_dependency(%q<rspec-rails>, ["~> 2.6.1"])
75
76
  s.add_dependency(%q<formtastic>, ["~> 1.2.4"])
76
77
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
77
- s.add_dependency(%q<ruby-debug>, [">= 0"])
78
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
78
79
  end
79
80
  end
80
81
 
data/lib/classy_enum.rb CHANGED
@@ -1,5 +1,8 @@
1
- require "classy_enum/active_record"
2
- require "classy_enum/base"
3
- require "classy_enum/class_methods"
4
- require "classy_enum/instance_methods"
5
- require "classy_enum/attributes"
1
+ module ClassyEnum
2
+ autoload :Base, 'classy_enum/base'
3
+ autoload :InstanceMethods, 'classy_enum/instance_methods'
4
+ autoload :ClassMethods, 'classy_enum/class_methods'
5
+ autoload :Attributes, 'classy_enum/attributes'
6
+ end
7
+
8
+ ActiveRecord::Base.send :extend, ClassyEnum::Attributes
@@ -56,5 +56,3 @@ module ClassyEnum
56
56
 
57
57
  end
58
58
  end
59
-
60
- ActiveRecord::Base.send :extend, ClassyEnum::Attributes
@@ -1,52 +1,8 @@
1
1
  module ClassyEnum
2
-
3
2
  class Base
4
-
5
- # Macro for defining enum members within a ClassyEnum class.
6
- # Accepts an array of symbols or strings which are converted to
7
- # ClassyEnum members as descents of their parent class.
8
- #
9
- # ==== Example
10
- # # Define an enum called Priority with three child classes
11
- # class Priority < ClassyEnum::Base
12
- # enum_classes :low, :medium, :high
13
- # end
14
- #
15
- # The child classes will be defined with the following constants:
16
- # PriorityLow, PriorityMedium, and PriorityHigh
17
- #
18
- # These child classes can be instantiated with either:
19
- # Priority.build(:low) or PriorityLow.new
20
- #
21
- def self.enum_classes(*options)
22
- self.const_set("OPTIONS", options) unless self.const_defined? "OPTIONS"
23
-
24
- self.extend ClassyEnum::ClassMethods
25
- self.send(:include, ClassyEnum::InstanceMethods)
26
- self.send(:include, Comparable)
27
-
28
- options.each_with_index do |option, index|
29
-
30
- klass = Class.new(self) do
31
- @index = index + 1
32
- @option = option
33
-
34
- def initialize
35
- @to_s = self.class.instance_variable_get('@option').to_s
36
- @index = self.class.instance_variable_get('@index')
37
- end
38
-
39
- # Define methods to test member type (ie member.option?)
40
- options.each do |o|
41
- self.send(:define_method, "#{o}?", lambda { o == option })
42
- end
43
-
44
- end
45
-
46
- klass_name = "#{self}#{option.to_s.camelize}"
47
- Object.const_set(klass_name, klass) unless Object.const_defined? klass_name
48
- end
49
- end
3
+ extend ClassyEnum::ClassMethods
4
+ include ClassyEnum::InstanceMethods
5
+ include Comparable
6
+ include ActiveModel::AttributeMethods
50
7
  end
51
-
52
8
  end
@@ -1,6 +1,47 @@
1
1
  module ClassyEnum
2
2
  module ClassMethods
3
3
 
4
+ # Macro for defining enum members within a ClassyEnum class.
5
+ # Accepts an array of symbols or strings which are converted to
6
+ # ClassyEnum members as descents of their parent class.
7
+ #
8
+ # ==== Example
9
+ # # Define an enum called Priority with three child classes
10
+ # class Priority < ClassyEnum::Base
11
+ # enum_classes :low, :medium, :high
12
+ # end
13
+ #
14
+ # The child classes will be defined with the following constants:
15
+ # PriorityLow, PriorityMedium, and PriorityHigh
16
+ #
17
+ # These child classes can be instantiated with either:
18
+ # Priority.build(:low) or PriorityLow.new
19
+ #
20
+ def enum_classes(*options)
21
+ self.const_set("OPTIONS", options) unless self.const_defined? "OPTIONS"
22
+
23
+ options.each_with_index do |option, index|
24
+
25
+ klass = Class.new(self) do
26
+ @index = index + 1
27
+ @option = option
28
+
29
+ # Use ActiveModel::AttributeMethods to define attribute? methods
30
+ attribute_method_suffix '?'
31
+ define_attribute_methods options
32
+
33
+ def initialize
34
+ @to_s = self.class.instance_variable_get('@option').to_s
35
+ @index = self.class.instance_variable_get('@index')
36
+ end
37
+
38
+ end
39
+
40
+ klass_name = "#{self}#{option.to_s.camelize}"
41
+ Object.const_set(klass_name, klass) unless Object.const_defined? klass_name
42
+ end
43
+ end
44
+
4
45
  # Build a new ClassyEnum child instance
5
46
  #
6
47
  # ==== Example
@@ -79,8 +79,20 @@ module ClassyEnum
79
79
  @index <=> other.index
80
80
  end
81
81
 
82
+ # Used by ActiveRecord::PredicateBuilder when building from a hash
83
+ def is_a?(klass)
84
+ return true if klass == ActiveRecord::Base
85
+ super(klass)
86
+ end
87
+
88
+ # Used by ActiveRecord::PredicateBuilder when building from a hash
89
+ def id
90
+ to_s
91
+ end
92
+
93
+ protected
94
+
82
95
  # Determine if the enum attribute is a particular member.
83
- # Accepts a symbol or string representing a member
84
96
  #
85
97
  # ==== Example
86
98
  # # Create an Enum with some elements
@@ -94,11 +106,17 @@ module ClassyEnum
94
106
  # end
95
107
  #
96
108
  # @dog = Dog.new(:breed => :snoop)
97
- # @dog.breed.is? :snoop # => true
98
- # @dog.breed.is? 'snoop' # => true
99
- # @dog.breed.is? :golden_retriever # => false
100
- def is?(obj)
101
- obj.to_s == to_s
109
+ # @dog.breed.snoop? # => true
110
+ # @dog.breed.golden_retriever? # => false
111
+ def attribute?(attribute)
112
+ to_s == attribute
113
+ end
114
+
115
+ private
116
+
117
+ # Used by attribute methods
118
+ def attributes
119
+ []
102
120
  end
103
121
 
104
122
  end
@@ -7,16 +7,29 @@ class ActiveDog < ActiveRecord::Base
7
7
  :presence => true,
8
8
  :uniqueness => { :scope => [:breed] }
9
9
 
10
+ scope :goldens, where(:breed => 'golden_retriever')
11
+
10
12
  end
11
13
 
12
14
  describe ActiveDog do
13
15
  before do
14
- ActiveDog.create!(:name => 'Sebastian', :breed => :golden_retriever)
15
- ActiveDog.create!(:name => 'Sirius', :breed => :husky)
16
+ ActiveDog.destroy_all
17
+ @golden = ActiveDog.create!(:name => 'Sebastian', :breed => :golden_retriever)
18
+ @husky = ActiveDog.create!(:name => 'Sirius', :breed => :husky)
16
19
  end
17
20
 
18
21
  it 'should allow validation with classy enum scope' do
19
22
  dog = ActiveDog.new(:name => 'Sirius', :breed => :golden_retriever)
20
23
  dog.should be_valid
24
+ dog.breed.golden_retriever?.should be_true
25
+ end
26
+
27
+ it 'should know all dogs' do
28
+ ActiveDog.all.should include(@golden, @husky)
29
+ end
30
+
31
+ it 'should have a working scope' do
32
+ ActiveDog.goldens.should include(@golden)
33
+ ActiveDog.goldens.should_not include(@husky)
21
34
  end
22
35
  end
File without changes
@@ -56,21 +56,13 @@ describe "A ClassyEnum Descendent" do
56
56
  end
57
57
 
58
58
  describe "A collection of ClassyEnums" do
59
- before(:each) do
60
- @one = TestEnum.build(:one)
61
- @two = TestEnum.build(:two)
62
- @three = TestEnum.build(:three)
59
+ let(:one) { TestEnum.build(:one) }
60
+ let(:two) { TestEnum.build(:two) }
61
+ let(:three) { TestEnum.build(:three) }
63
62
 
64
- @unordered = [@one, @three, @two]
65
- end
66
-
67
- it "should sort the enums" do
68
- @unordered.sort.should == [@one, @two, @three]
69
- end
70
-
71
- it "should find the max enum based on its order" do
72
- @unordered.max.should == @three
73
- end
63
+ subject { [one, three, two] }
64
+ its(:sort) { should eql([one, two, three]) }
65
+ its(:max) { should eql(three) }
74
66
  end
75
67
 
76
68
  describe "A ClassyEnum element" do
@@ -88,63 +80,24 @@ describe "A ClassyEnum element" do
88
80
  end
89
81
 
90
82
  describe "A ClassyEnum instance" do
91
- before { @enum = TestEnum.build(:one) }
92
-
93
- it "should build a TestEnum class" do
94
- @enum.class.should == TestEnumOne
95
- end
96
-
97
- it "should return true for is?(:one)" do
98
- @enum.is?(:one).should be_true
99
- end
100
-
101
- it "should return true for is?('one')" do
102
- @enum.is?('one').should be_true
103
- end
104
-
105
- it "should return true for one?" do
106
- @enum.one?.should be_true
107
- end
108
-
109
- it "should return false for two?" do
110
- @enum.two?.should be_false
111
- end
112
-
113
- it "should be a TestEnum" do
114
- @enum.should be_a(TestEnum)
115
- end
116
-
117
- it "should have an index" do
118
- @enum.index.should == 1
119
- end
120
-
121
- it "should index as to_i" do
122
- @enum.to_i.should == 1
123
- end
124
-
125
- it "should convert to a string" do
126
- @enum.to_s.should == "one"
127
- end
128
-
129
- it "should convert to a symbol" do
130
- @enum.to_sym.should == :one
131
- end
132
-
133
- it "should have a name" do
134
- @enum.name.should == "One"
135
- end
136
-
137
- it "should inherit the default instance methods" do
138
- @enum.test_instance_method?.should be_false
139
- end
83
+ subject { TestEnum.build(:one) }
84
+
85
+ it { should be_a(TestEnum) }
86
+ its(:class) { should eql(TestEnumOne) }
87
+ its(:one?) { should be_true }
88
+ its(:two?) { should be_false }
89
+ its(:index) { should eql(1) }
90
+ its(:to_i) { should eql(1) }
91
+ its(:to_s) { should eql('one') }
92
+ its(:to_sym) { should be(:one) }
93
+ its(:name) { should eql('One') }
94
+ its(:test_instance_method?) { should be_false }
140
95
  end
141
96
 
142
- describe "An ClassyEnumValue" do
143
- before(:each) { @enum = TestEnum.build(:two) }
97
+ describe "A ClassyEnum that overrides values" do
98
+ subject { TestEnum.build(:two) }
144
99
 
145
- it "should override the default instance methods" do
146
- @enum.test_instance_method?.should be_true
147
- end
100
+ its(:test_instance_method?) { should be_true }
148
101
 
149
102
  it "should override the default class methods" do
150
103
  TestEnumTwo.test_class_method?.should be_true
metadata CHANGED
@@ -1,139 +1,103 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: classy_enum
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Peter Brown
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-06-29 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
12
+ date: 2011-07-25 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &2155094960 !ruby/object:Gem::Requirement
22
17
  none: false
23
- requirements:
18
+ requirements:
24
19
  - - ~>
25
- - !ruby/object:Gem::Version
26
- hash: 7
27
- segments:
28
- - 3
29
- - 0
30
- - 0
20
+ - !ruby/object:Gem::Version
31
21
  version: 3.0.0
32
22
  type: :runtime
33
- requirement: *id001
34
23
  prerelease: false
35
- name: rails
36
- - !ruby/object:Gem::Dependency
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2155094960
25
+ - !ruby/object:Gem::Dependency
26
+ name: jeweler
27
+ requirement: &2155094380 !ruby/object:Gem::Requirement
38
28
  none: false
39
- requirements:
29
+ requirements:
40
30
  - - ~>
41
- - !ruby/object:Gem::Version
42
- hash: 11
43
- segments:
44
- - 1
45
- - 6
46
- - 2
31
+ - !ruby/object:Gem::Version
47
32
  version: 1.6.2
48
33
  type: :development
49
- requirement: *id002
50
34
  prerelease: false
51
- name: jeweler
52
- - !ruby/object:Gem::Dependency
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2155094380
36
+ - !ruby/object:Gem::Dependency
37
+ name: rcov
38
+ requirement: &2155093860 !ruby/object:Gem::Requirement
54
39
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
62
44
  type: :development
63
- requirement: *id003
64
45
  prerelease: false
65
- name: rcov
66
- - !ruby/object:Gem::Dependency
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2155093860
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-rails
49
+ requirement: &2155093300 !ruby/object:Gem::Requirement
68
50
  none: false
69
- requirements:
51
+ requirements:
70
52
  - - ~>
71
- - !ruby/object:Gem::Version
72
- hash: 21
73
- segments:
74
- - 2
75
- - 6
76
- - 1
53
+ - !ruby/object:Gem::Version
77
54
  version: 2.6.1
78
55
  type: :development
79
- requirement: *id004
80
56
  prerelease: false
81
- name: rspec-rails
82
- - !ruby/object:Gem::Dependency
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *2155093300
58
+ - !ruby/object:Gem::Dependency
59
+ name: formtastic
60
+ requirement: &2155092680 !ruby/object:Gem::Requirement
84
61
  none: false
85
- requirements:
62
+ requirements:
86
63
  - - ~>
87
- - !ruby/object:Gem::Version
88
- hash: 23
89
- segments:
90
- - 1
91
- - 2
92
- - 4
64
+ - !ruby/object:Gem::Version
93
65
  version: 1.2.4
94
66
  type: :development
95
- requirement: *id005
96
67
  prerelease: false
97
- name: formtastic
98
- - !ruby/object:Gem::Dependency
99
- version_requirements: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *2155092680
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3-ruby
71
+ requirement: &2155092060 !ruby/object:Gem::Requirement
100
72
  none: false
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- hash: 3
105
- segments:
106
- - 0
107
- version: "0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
108
77
  type: :development
109
- requirement: *id006
110
78
  prerelease: false
111
- name: sqlite3-ruby
112
- - !ruby/object:Gem::Dependency
113
- version_requirements: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *2155092060
80
+ - !ruby/object:Gem::Dependency
81
+ name: ruby-debug19
82
+ requirement: &2155091460 !ruby/object:Gem::Requirement
114
83
  none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: 3
119
- segments:
120
- - 0
121
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
122
88
  type: :development
123
- requirement: *id007
124
89
  prerelease: false
125
- name: ruby-debug
90
+ version_requirements: *2155091460
126
91
  description: A utility that adds class based enum functionality to ActiveRecord attributes
127
92
  email: github@lette.us
128
93
  executables: []
129
-
130
94
  extensions: []
131
-
132
- extra_rdoc_files:
95
+ extra_rdoc_files:
133
96
  - LICENSE
134
97
  - README.textile
135
- files:
98
+ files:
136
99
  - .document
100
+ - .rvmrc
137
101
  - Gemfile
138
102
  - Gemfile.lock
139
103
  - LICENSE
@@ -143,7 +107,6 @@ files:
143
107
  - classy_enum.gemspec
144
108
  - init.rb
145
109
  - lib/classy_enum.rb
146
- - lib/classy_enum/active_record.rb
147
110
  - lib/classy_enum/attributes.rb
148
111
  - lib/classy_enum/base.rb
149
112
  - lib/classy_enum/class_methods.rb
@@ -153,41 +116,36 @@ files:
153
116
  - lib/generators/classy_enum/templates/enum.rb
154
117
  - spec/active_record_spec.rb
155
118
  - spec/classy_enum_attributes_spec.rb
119
+ - spec/classy_enum_migration_spec.rb
156
120
  - spec/classy_enum_semantic_form_builder_spec.rb
157
121
  - spec/classy_enum_spec.rb
158
122
  - spec/spec_helper.rb
159
123
  homepage: http://github.com/beerlington/classy_enum
160
- licenses:
124
+ licenses:
161
125
  - MIT
162
126
  post_install_message:
163
127
  rdoc_options: []
164
-
165
- require_paths:
128
+ require_paths:
166
129
  - lib
167
- required_ruby_version: !ruby/object:Gem::Requirement
130
+ required_ruby_version: !ruby/object:Gem::Requirement
168
131
  none: false
169
- requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- hash: 3
173
- segments:
132
+ requirements:
133
+ - - ! '>='
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ segments:
174
137
  - 0
175
- version: "0"
176
- required_rubygems_version: !ruby/object:Gem::Requirement
138
+ hash: -3853471588161721996
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
140
  none: false
178
- requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- hash: 3
182
- segments:
183
- - 0
184
- version: "0"
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
185
145
  requirements: []
186
-
187
146
  rubyforge_project:
188
147
  rubygems_version: 1.8.5
189
148
  signing_key:
190
149
  specification_version: 3
191
150
  summary: A class based enumerator utility for Ruby on Rails
192
151
  test_files: []
193
-
@@ -1,15 +0,0 @@
1
- module ActiveRecord # :nodoc: all
2
- class PredicateBuilder
3
- def build_from_hash_with_classy_enum(attributes, default_table)
4
-
5
- # Convert classy enum values to strings
6
- attributes.map do |column, value|
7
- attributes[column] = value.to_s if value.is_a? ClassyEnum::Base
8
- end
9
-
10
- build_from_hash_without_classy_enum(attributes, default_table)
11
- end
12
-
13
- alias_method_chain :build_from_hash, :classy_enum
14
- end
15
- end