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 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.id2name
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.3
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-29 00:00:00.000000000Z
15
+ date: 2011-09-30 00:00:00.000000000Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
19
- requirement: &17672400 !ruby/object:Gem::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: *17672400
27
+ version_requirements: *15199880
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: jeweler
30
- requirement: &17671920 !ruby/object:Gem::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: *17671920
38
+ version_requirements: *15199020
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: rspec
41
- requirement: &17671420 !ruby/object:Gem::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: *17671420
49
+ version_requirements: *15194680
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: sqlite3
52
- requirement: &17670900 !ruby/object:Gem::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: *17670900
60
+ version_requirements: *15194020
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: genspec
63
- requirement: &17670200 !ruby/object:Gem::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: *17670200
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