power_enum 0.4.3 → 0.4.4

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