classy_enum 1.0.0 → 1.1.0

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