classy_enum 3.4.0 → 3.5.0.beta
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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/CHANGELOG.md +5 -0
- data/classy_enum.gemspec +0 -1
- data/lib/classy_enum/active_record.rb +15 -4
- data/lib/classy_enum/version.rb +1 -1
- data/spec/classy_enum/active_record_spec.rb +7 -2
- metadata +5 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e52f5ea1617ac0e9a89994cfab27f12faec5d1ce
|
4
|
+
data.tar.gz: 37e5e8fac14f20a572df511fa7403f031b0b93c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e60ebb8312ab9245e951785798023ad5b21583da87382b5f0da025e08757deb7626ef7c5f2248e72f9d44aaf2f90fe0731092ff82e617122bcdd7386f6aa0dfc
|
7
|
+
data.tar.gz: 79ede4de8ff0e03de2e41fe9f77ad4e5fcc35fea0db19af23ccd92915d692df10d50d1458a98dfea13e9298fd0d38560ecedf776e73dc1962e3da9c5c133bc01
|
data/.travis.yml
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 1.8.7
|
4
3
|
- 1.9.3
|
5
4
|
- 2.0.0
|
5
|
+
- 2.1.1
|
6
6
|
gemfile:
|
7
7
|
- gemfiles/Gemfile.rails-3.0.x
|
8
8
|
- gemfiles/Gemfile.rails-3.1.x
|
@@ -11,4 +11,4 @@ gemfile:
|
|
11
11
|
matrix:
|
12
12
|
exclude:
|
13
13
|
- rvm: 1.8.7
|
14
|
-
gemfile: gemfiles/Gemfile.rails-4.0.x
|
14
|
+
gemfile: gemfiles/Gemfile.rails-4.0.x
|
data/CHANGELOG.md
CHANGED
data/classy_enum.gemspec
CHANGED
@@ -67,10 +67,7 @@ module ClassyEnum
|
|
67
67
|
|
68
68
|
# Define getter method that returns a ClassyEnum instance
|
69
69
|
define_method attribute do
|
70
|
-
|
71
|
-
value ||= default unless allow_nil
|
72
|
-
|
73
|
-
enum.build(value,
|
70
|
+
enum.build(read_attribute(attribute),
|
74
71
|
:owner => self,
|
75
72
|
:serialize_as_json => serialize_as_json,
|
76
73
|
:allow_blank => (allow_blank || allow_nil)
|
@@ -82,6 +79,20 @@ module ClassyEnum
|
|
82
79
|
value = ClassyEnum._normalize_value(value, default, (allow_nil || allow_blank))
|
83
80
|
super(value)
|
84
81
|
end
|
82
|
+
|
83
|
+
# Initialize the object with the default value if it is present
|
84
|
+
# because this will let you store the default value in the
|
85
|
+
# database and make it searchable.
|
86
|
+
if default.present?
|
87
|
+
after_initialize do
|
88
|
+
value = read_attribute(attribute)
|
89
|
+
|
90
|
+
if (value.blank? && !(allow_blank || allow_nil)) || (value.nil? && !allow_nil)
|
91
|
+
send("#{attribute}=", default)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
85
96
|
end
|
86
97
|
|
87
98
|
end
|
data/lib/classy_enum/version.rb
CHANGED
@@ -226,15 +226,20 @@ describe DefaultCat do
|
|
226
226
|
persian.breed_color { should eql('white Persian') }
|
227
227
|
end
|
228
228
|
|
229
|
+
it 'persists the default, when set to nil' do
|
230
|
+
cat = DefaultCat.create(:breed => :abyssian)
|
231
|
+
expect(DefaultCat.where(:other_breed => 'persian')).to include(cat)
|
232
|
+
end
|
233
|
+
|
229
234
|
it 'uses the default if explictly set to nil and does not allow nil' do
|
230
235
|
abyssian.update_attributes!(:other_breed => nil)
|
231
|
-
DefaultCat.where(:other_breed =>
|
236
|
+
DefaultCat.where(:other_breed => 'persian').should include(abyssian)
|
232
237
|
DefaultCat.last.other_breed.should == 'persian'
|
233
238
|
end
|
234
239
|
|
235
240
|
it 'uses the default if explictly set to blank and does not allow blank' do
|
236
241
|
abyssian.update_attributes!(:other_breed => '')
|
237
|
-
DefaultCat.where(:other_breed => '').
|
242
|
+
DefaultCat.where(:other_breed => 'persian').should include(abyssian)
|
238
243
|
DefaultCat.last.other_breed.should == 'persian'
|
239
244
|
end
|
240
245
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: classy_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0.beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Brown
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.6'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: debugger
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
description: A utility that adds class based enum functionality to ActiveRecord attributes
|
84
70
|
email:
|
85
71
|
- github@lette.us
|
@@ -138,12 +124,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
138
124
|
version: '0'
|
139
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
126
|
requirements:
|
141
|
-
- - "
|
127
|
+
- - ">"
|
142
128
|
- !ruby/object:Gem::Version
|
143
|
-
version:
|
129
|
+
version: 1.3.1
|
144
130
|
requirements: []
|
145
131
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.2.
|
132
|
+
rubygems_version: 2.2.2
|
147
133
|
signing_key:
|
148
134
|
specification_version: 4
|
149
135
|
summary: A class based enumerator utility for Ruby on Rails
|