simple_enum 1.6.8 → 1.6.9
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/.gitignore +1 -0
- data/Gemfile +3 -1
- data/README.rdoc +1 -1
- data/lib/simple_enum.rb +11 -5
- data/lib/simple_enum/enum_hash.rb +8 -0
- data/lib/simple_enum/version.rb +1 -1
- metadata +24 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18d5bbe70d30e114c220f17681c172597163bfd0
|
4
|
+
data.tar.gz: e9ae250d080b7f6efa78928005df4b9f36ca9ffb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9150ad6487da910c1b6319030102a2e8504f0775e995f2e4cc8ca09e6198e91176e08d6fa8b9aca468aa0de43cdb5a4168d7b802c0ca159d2a98b860810666a7
|
7
|
+
data.tar.gz: 14577d002d9996148f4e321624ecaba8cf705de2ff8162f06c5aca7940b620dfbf1cda88c3c182aa10eed11ce8257d129e4cc4f870a77f123c0b996a86f97205
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -2,8 +2,10 @@ source "http://rubygems.org"
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
+
# Fix at 1.9.x, because 1.10 errors on jruby
|
6
|
+
gem 'mongo', '~> 1.9.0', :platform => :jruby
|
7
|
+
|
5
8
|
# some development deps
|
6
9
|
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
7
|
-
|
8
10
|
gem 'sqlite3', :platform => :ruby
|
9
11
|
gem 'bson_ext', :platform => :ruby
|
data/README.rdoc
CHANGED
@@ -85,7 +85,7 @@ useful when creating queries, displaying option elements or similar:
|
|
85
85
|
* You can use string values instead of integer values if your database column has the type +string+ or +text+:
|
86
86
|
|
87
87
|
class User < ActiveRecord::Base
|
88
|
-
|
88
|
+
as_enum :status, [:deleted, :active, :disabled], :strings => true
|
89
89
|
end
|
90
90
|
|
91
91
|
User.create!(status: :active) #=> #<User id: 1, status_cd: "active">
|
data/lib/simple_enum.rb
CHANGED
@@ -182,17 +182,23 @@ module SimpleEnum
|
|
182
182
|
|
183
183
|
# generate setter
|
184
184
|
define_method("#{enum_cd}=") do |new_value|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
185
|
+
return send("#{options[:column]}=", nil) if new_value.blank?
|
186
|
+
|
187
|
+
new_value = new_value.to_s if options[:strings]
|
188
|
+
real = nil
|
189
|
+
if values.contains?(new_value)
|
190
|
+
real = values[EnumHash.symbolize(new_value)]
|
191
|
+
real = new_value if real.nil? && values_inverted[new_value].present?
|
192
|
+
end
|
193
|
+
|
194
|
+
raise ArgumentError, "Invalid enumeration value: #{new_value}" if options[:whiny] && !real
|
189
195
|
send("#{options[:column]}=", real)
|
190
196
|
end
|
191
197
|
|
192
198
|
# generate checker
|
193
199
|
define_method("#{enum_cd}?") do |*args|
|
194
200
|
current = send(enum_cd)
|
195
|
-
return current ==
|
201
|
+
return current.to_s == args.first.to_s if args.length > 0
|
196
202
|
|
197
203
|
!!current
|
198
204
|
end
|
@@ -29,6 +29,14 @@ module SimpleEnum
|
|
29
29
|
ary ||= args
|
30
30
|
ary.each { |e| set_value_for_reverse_lookup(e[0], strings ? e[0].to_s : e[1]) }
|
31
31
|
end
|
32
|
+
|
33
|
+
@stringified_keys = keys.map(&:to_s)
|
34
|
+
|
35
|
+
freeze
|
36
|
+
end
|
37
|
+
|
38
|
+
def contains?(value)
|
39
|
+
@stringified_keys.include?(value.to_s) || values.include?(value)
|
32
40
|
end
|
33
41
|
|
34
42
|
def default(k = nil)
|
data/lib/simple_enum/version.rb
CHANGED
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lukas Westermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.9.2
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.9.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '2.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '2.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: activerecord
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 3.0.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 3.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: mongoid
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '2.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '2.0'
|
83
83
|
description: Provides enum-like fields for ActiveRecord, ActiveModel and Mongoid models.
|
@@ -87,22 +87,24 @@ executables: []
|
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
-
- .gitignore
|
91
|
-
- Rakefile
|
90
|
+
- ".gitignore"
|
92
91
|
- Gemfile
|
93
|
-
- README.rdoc
|
94
92
|
- LICENSE
|
95
|
-
-
|
93
|
+
- README.rdoc
|
94
|
+
- Rakefile
|
95
|
+
- lib/simple_enum.rb
|
96
96
|
- lib/simple_enum/enum_hash.rb
|
97
97
|
- lib/simple_enum/mongoid.rb
|
98
98
|
- lib/simple_enum/validation.rb
|
99
99
|
- lib/simple_enum/version.rb
|
100
|
-
-
|
100
|
+
- locales/en.yml
|
101
|
+
- simple_enum.gemspec
|
101
102
|
- test/array_conversions_test.rb
|
102
103
|
- test/class_methods_test.rb
|
103
104
|
- test/dirty_attributes_test.rb
|
104
105
|
- test/enum_hash_test.rb
|
105
106
|
- test/finders_test.rb
|
107
|
+
- test/locales.yml
|
106
108
|
- test/mongoid_test.rb
|
107
109
|
- test/object_backed_test.rb
|
108
110
|
- test/orm/active_record.rb
|
@@ -113,8 +115,6 @@ files:
|
|
113
115
|
- test/simple_enum_test.rb
|
114
116
|
- test/test_helper.rb
|
115
117
|
- test/without_shortcuts_test.rb
|
116
|
-
- locales/en.yml
|
117
|
-
- test/locales.yml
|
118
118
|
homepage: http://lwe.github.com/simple_enum/
|
119
119
|
licenses:
|
120
120
|
- MIT
|
@@ -125,26 +125,28 @@ require_paths:
|
|
125
125
|
- lib
|
126
126
|
required_ruby_version: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
|
-
- -
|
128
|
+
- - ">="
|
129
129
|
- !ruby/object:Gem::Version
|
130
130
|
version: 1.8.7
|
131
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
132
|
requirements:
|
133
|
-
- -
|
133
|
+
- - ">="
|
134
134
|
- !ruby/object:Gem::Version
|
135
135
|
version: 1.3.6
|
136
136
|
requirements: []
|
137
137
|
rubyforge_project:
|
138
|
-
rubygems_version: 2.0
|
138
|
+
rubygems_version: 2.2.0
|
139
139
|
signing_key:
|
140
140
|
specification_version: 4
|
141
141
|
summary: Simple enum-like field support for models.
|
142
142
|
test_files:
|
143
|
+
- locales/en.yml
|
143
144
|
- test/array_conversions_test.rb
|
144
145
|
- test/class_methods_test.rb
|
145
146
|
- test/dirty_attributes_test.rb
|
146
147
|
- test/enum_hash_test.rb
|
147
148
|
- test/finders_test.rb
|
149
|
+
- test/locales.yml
|
148
150
|
- test/mongoid_test.rb
|
149
151
|
- test/object_backed_test.rb
|
150
152
|
- test/orm/active_record.rb
|
@@ -155,5 +157,3 @@ test_files:
|
|
155
157
|
- test/simple_enum_test.rb
|
156
158
|
- test/test_helper.rb
|
157
159
|
- test/without_shortcuts_test.rb
|
158
|
-
- locales/en.yml
|
159
|
-
- test/locales.yml
|