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