power_enum 0.4.3 → 0.4.4
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 +8 -0
- data/lib/active_record/aggregations/has_enumerated.rb +14 -2
- metadata +12 -12
data/README.md
CHANGED
@@ -325,6 +325,14 @@ for all has\_enumerated fields if you happen to have more than one defined in yo
|
|
325
325
|
NOTE: A `nil` is always considered to be a valid value for `status=(arg)` since it's assumed you're trying to null out the foreign key.
|
326
326
|
The `:on_lookup_failure` will be bypassed.
|
327
327
|
|
328
|
+
#### `has_enumerated?(attr)`
|
329
|
+
|
330
|
+
Returns true if the given attr is an enumerated attributes, false otherwise. `attr` can be a string or a symbol.
|
331
|
+
|
332
|
+
#### `enumerated_attributes`
|
333
|
+
|
334
|
+
Returns an array of attributes which are enumerated.
|
335
|
+
|
328
336
|
### ActiveRecord::VirtualEnumerations
|
329
337
|
|
330
338
|
In many instances, your `acts_as_enumerated` classes will do nothing more than just act as enumerated.
|
@@ -9,11 +9,20 @@ module ActiveRecord
|
|
9
9
|
base.extend(MacroMethods)
|
10
10
|
end
|
11
11
|
|
12
|
-
module MacroMethods
|
12
|
+
module MacroMethods
|
13
|
+
def enumerated_attributes
|
14
|
+
@enumerated_attributes ||= []
|
15
|
+
end
|
16
|
+
|
17
|
+
def has_enumerated?(attribute)
|
18
|
+
return false unless attribute
|
19
|
+
enumerated_attributes.include? attribute.to_s
|
20
|
+
end
|
21
|
+
|
13
22
|
def has_enumerated(part_id, options = {})
|
14
23
|
options.assert_valid_keys(:class_name, :foreign_key, :on_lookup_failure)
|
15
24
|
|
16
|
-
name = part_id.
|
25
|
+
name = part_id.to_s
|
17
26
|
class_name = (options[:class_name] || name).to_s.camelize
|
18
27
|
foreign_key = (options[:foreign_key] || "#{name}_id").to_s
|
19
28
|
failure = options[:on_lookup_failure]
|
@@ -54,6 +63,9 @@ module ActiveRecord
|
|
54
63
|
end
|
55
64
|
end
|
56
65
|
end_eval
|
66
|
+
|
67
|
+
enumerated_attributes << name
|
68
|
+
|
57
69
|
end
|
58
70
|
end
|
59
71
|
end
|
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.4.
|
4
|
+
version: 0.4.4
|
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: 2011-09-
|
15
|
+
date: 2011-09-30 00:00:00.000000000Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rails
|
19
|
-
requirement: &
|
19
|
+
requirement: &15199880 !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
22
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: 3.0.0
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *15199880
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: jeweler
|
30
|
-
requirement: &
|
30
|
+
requirement: &15199020 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -35,10 +35,10 @@ dependencies:
|
|
35
35
|
version: '0'
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *15199020
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: rspec
|
41
|
-
requirement: &
|
41
|
+
requirement: &15194680 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
44
|
- - ! '>='
|
@@ -46,10 +46,10 @@ dependencies:
|
|
46
46
|
version: '0'
|
47
47
|
type: :development
|
48
48
|
prerelease: false
|
49
|
-
version_requirements: *
|
49
|
+
version_requirements: *15194680
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: sqlite3
|
52
|
-
requirement: &
|
52
|
+
requirement: &15194020 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ! '>='
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
version: '0'
|
58
58
|
type: :development
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *15194020
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: genspec
|
63
|
-
requirement: &
|
63
|
+
requirement: &15193500 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
65
65
|
requirements:
|
66
66
|
- - ! '>='
|
@@ -68,7 +68,7 @@ dependencies:
|
|
68
68
|
version: '0'
|
69
69
|
type: :development
|
70
70
|
prerelease: false
|
71
|
-
version_requirements: *
|
71
|
+
version_requirements: *15193500
|
72
72
|
description: ! 'Power Enum allows you to treat instances of your ActiveRecord models
|
73
73
|
as though they were an enumeration of values.
|
74
74
|
|