power_enum 0.6.2 → 0.6.3
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/README.md +6 -2
- data/lib/active_record/acts/enumerated.rb +10 -2
- metadata +39 -17
data/README.md
CHANGED
@@ -87,7 +87,7 @@ from a pre-test Rake task.
|
|
87
87
|
|
88
88
|
### migration
|
89
89
|
|
90
|
-
If you're using Rails
|
90
|
+
If you're using Rails 3.0, your migration file will look something like this:
|
91
91
|
|
92
92
|
class CreateEnumBookingStatus < ActiveRecord::Migration
|
93
93
|
|
@@ -101,7 +101,7 @@ If you're using Rails prior to 3.0, your migration file will look something like
|
|
101
101
|
|
102
102
|
end
|
103
103
|
|
104
|
-
If you're using Rails 3.1, it will look something like this:
|
104
|
+
If you're using Rails 3.1 or later, it will look something like this:
|
105
105
|
|
106
106
|
class CreateEnumBookingStatus < ActiveRecord::Migration
|
107
107
|
|
@@ -257,6 +257,10 @@ method.
|
|
257
257
|
`BookingStatus.inactive` returns an array of all BookingStatus records that are inactive. See the `inactive?` instance
|
258
258
|
method.
|
259
259
|
|
260
|
+
##### names (since version 0.6.3)
|
261
|
+
|
262
|
+
`BookingStatus.names` will return all the names of the defined enums as an array of symbols.
|
263
|
+
|
260
264
|
#### Instance Methods
|
261
265
|
|
262
266
|
Each enumeration model gets the following instance methods.
|
@@ -112,6 +112,11 @@ module ActiveRecord
|
|
112
112
|
@all_inactive = all.select{ |enum| !enum.active? }.freeze
|
113
113
|
end
|
114
114
|
|
115
|
+
# Returns the names of all the enum values as an array of symbols.
|
116
|
+
def names
|
117
|
+
all.map { |item| item.name_sym }
|
118
|
+
end
|
119
|
+
|
115
120
|
# Enum lookup by Symbol, String, or id. Returns <tt>arg<tt> if arg is
|
116
121
|
# an enum instance.
|
117
122
|
def [](arg)
|
@@ -180,11 +185,13 @@ module ActiveRecord
|
|
180
185
|
|
181
186
|
# ---Private methods---
|
182
187
|
|
188
|
+
# Returns a hash of all enumeration members keyed by their ids.
|
183
189
|
def all_by_id
|
184
190
|
@all_by_id ||= all_by_attribute( :id )
|
185
191
|
end
|
186
192
|
private :all_by_id
|
187
|
-
|
193
|
+
|
194
|
+
# Returns a hash of all the enumeration members keyed by their names.
|
188
195
|
def all_by_name
|
189
196
|
begin
|
190
197
|
@all_by_name ||= all_by_attribute( :name )
|
@@ -256,7 +263,8 @@ module ActiveRecord
|
|
256
263
|
# BookingStatus[:foo] === [:foo, :bar, :baz] #Returns true
|
257
264
|
# BookingStatus[:foo] === nil #Returns false
|
258
265
|
#
|
259
|
-
# You should note that defining an +:on_lookup_failure+ method that raises an exception will cause +===+ to
|
266
|
+
# You should note that defining an +:on_lookup_failure+ method that raises an exception will cause +===+ to
|
267
|
+
# also raise an exception for any lookup failure of +BookingStatus[arg]+.
|
260
268
|
def ===(arg)
|
261
269
|
case arg
|
262
270
|
when nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: power_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,11 +12,11 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2012-
|
15
|
+
date: 2012-05-19 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rails
|
19
|
-
requirement:
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
22
|
- - ! '>='
|
@@ -24,10 +24,15 @@ dependencies:
|
|
24
24
|
version: 3.0.0
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.0.0
|
28
33
|
- !ruby/object:Gem::Dependency
|
29
34
|
name: jeweler
|
30
|
-
requirement:
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
31
36
|
none: false
|
32
37
|
requirements:
|
33
38
|
- - ! '>='
|
@@ -35,10 +40,15 @@ dependencies:
|
|
35
40
|
version: '0'
|
36
41
|
type: :development
|
37
42
|
prerelease: false
|
38
|
-
version_requirements:
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
39
49
|
- !ruby/object:Gem::Dependency
|
40
50
|
name: rspec
|
41
|
-
requirement:
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
42
52
|
none: false
|
43
53
|
requirements:
|
44
54
|
- - ! '>='
|
@@ -46,10 +56,15 @@ dependencies:
|
|
46
56
|
version: '0'
|
47
57
|
type: :development
|
48
58
|
prerelease: false
|
49
|
-
version_requirements:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
50
65
|
- !ruby/object:Gem::Dependency
|
51
66
|
name: sqlite3
|
52
|
-
requirement:
|
67
|
+
requirement: !ruby/object:Gem::Requirement
|
53
68
|
none: false
|
54
69
|
requirements:
|
55
70
|
- - ! '>='
|
@@ -57,18 +72,28 @@ dependencies:
|
|
57
72
|
version: '0'
|
58
73
|
type: :development
|
59
74
|
prerelease: false
|
60
|
-
version_requirements:
|
75
|
+
version_requirements: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ! '>='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
61
81
|
- !ruby/object:Gem::Dependency
|
62
82
|
name: genspec
|
63
|
-
requirement:
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
64
84
|
none: false
|
65
85
|
requirements:
|
66
|
-
- - =
|
86
|
+
- - '='
|
67
87
|
- !ruby/object:Gem::Version
|
68
88
|
version: 0.2.1
|
69
89
|
type: :development
|
70
90
|
prerelease: false
|
71
|
-
version_requirements:
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.2.1
|
72
97
|
description: ! 'Power Enum allows you to treat instances of your ActiveRecord models
|
73
98
|
as though they were an enumeration of values.
|
74
99
|
|
@@ -116,9 +141,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
116
141
|
- - ! '>='
|
117
142
|
- !ruby/object:Gem::Version
|
118
143
|
version: '0'
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
hash: -2214178146934269601
|
122
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
145
|
none: false
|
124
146
|
requirements:
|
@@ -127,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
149
|
version: '0'
|
128
150
|
requirements: []
|
129
151
|
rubyforge_project:
|
130
|
-
rubygems_version: 1.8.
|
152
|
+
rubygems_version: 1.8.24
|
131
153
|
signing_key:
|
132
154
|
specification_version: 3
|
133
155
|
summary: Allows you to treat instances of your ActiveRecord models as though they
|