power_enum 0.5.0 → 0.5.1

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
@@ -111,7 +111,8 @@ You can now customize it.
111
111
  # t.string :name, :limit => 50, :null => false
112
112
  # end
113
113
 
114
- Now, when you create your Booking model, your migration should create a reference column for status id's and a foreign key relationship to the booking_statuses table.
114
+ Now, when you create your Booking model, your migration should create a reference column for status id's and a foreign
115
+ key relationship to the booking\_statuses table.
115
116
 
116
117
  create_table :bookings do |t|
117
118
  t.integer :status_id
@@ -121,6 +122,14 @@ Now, when you create your Booking model, your migration should create a referenc
121
122
 
122
123
  # Ideally, you would use a gem of some sort to handle foreign keys.
123
124
  execute "ALTER TABLE bookings ADD 'bookings_bookings_status_id_fk' FOREIGN KEY (status_id) REFERENCES booking_statuses (id);"
125
+
126
+ It's easier to use the `references` method if you intend to stick to the default naming convention for reference columns.
127
+
128
+ create_table :bookings do |t|
129
+ t.references :booking_status # Same as t.integer booking_status_id
130
+
131
+ t.timestamps
132
+ end
124
133
 
125
134
  There are two methods added to Rails migrations:
126
135
 
@@ -128,10 +137,10 @@ There are two methods added to Rails migrations:
128
137
 
129
138
  Creates a new enum table. `enum_name` will be automatically pluralized. The following options are supported:
130
139
 
131
- - [:name_column] Specify the column name for name of the enum. By default it's :name. This can be a String or a Symbol
140
+ - [:name\_column] Specify the column name for name of the enum. By default it's :name. This can be a String or a Symbol
132
141
  - [:description] Set this to `true` to have a 'description' column generated.
133
- - [:name_limit] Set this define the limit of the name column.
134
- - [:desc_limit] Set this to define the limit of the description column
142
+ - [:name\_limit] Set this define the limit of the name column.
143
+ - [:desc\_limit] Set this to define the limit of the description column
135
144
  - [:active] Set this to `true` to have a boolean 'active' column generated. The 'active' column will have the options of NOT NULL and DEFAULT TRUE.
136
145
  - [:timestamps] Set this to `true` to have the timestamp columns (created\_at and updated\_at) generated
137
146
 
@@ -289,7 +298,8 @@ This method is used by the `inactive` class method to select inactive enums.
289
298
  #### Notes
290
299
 
291
300
  `acts_as_enumerated` records are considered immutable. By default you cannot create/alter/destroy instances because they are cached in memory.
292
- Because of Rails' process-based model it is not safe to allow updating acts\_as\_enumerated records as the caches will get out of sync.
301
+ Because of Rails' process-based model it is not safe to allow updating acts\_as\_enumerated records as the caches will get out of sync. Also,
302
+ as of version 0.5.1, `to_s` is overriden to return the name of the enum instance.
293
303
 
294
304
  However, one instance where updating the models *should* be allowed is if you are using seeds.rb to seed initial values into the database.
295
305
 
@@ -236,6 +236,11 @@ module ActiveRecord
236
236
  self.name.to_sym
237
237
  end
238
238
 
239
+ # By default enumeration #to_s should return stringified name of the enum. BookingStatus[:foo].to_s returns "foo"
240
+ def to_s
241
+ self.name.to_s
242
+ end
243
+
239
244
  # Returns true if the instance is active, false otherwise. If it has an attribute 'active',
240
245
  # returns the attribute cast to a boolean, otherwise returns true. This method is used by the 'active'
241
246
  # class method to select active enums.
metadata CHANGED
@@ -1,10 +1,15 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: power_enum
3
- version: !ruby/object:Gem::Version
4
- version: 0.5.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 9
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 1
10
+ version: 0.5.1
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Trevor Squires
9
14
  - Pivotal Labs
10
15
  - Arthur Shagall
@@ -12,82 +17,98 @@ authors:
12
17
  autorequire:
13
18
  bindir: bin
14
19
  cert_chain: []
15
- date: 2011-11-12 00:00:00.000000000Z
16
- dependencies:
17
- - !ruby/object:Gem::Dependency
18
- name: rails
19
- requirement: &10818300 !ruby/object:Gem::Requirement
20
+
21
+ date: 2011-12-02 00:00:00 Z
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
20
25
  none: false
21
- requirements:
22
- - - ! '>='
23
- - !ruby/object:Gem::Version
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 7
30
+ segments:
31
+ - 3
32
+ - 0
33
+ - 0
24
34
  version: 3.0.0
25
- type: :runtime
35
+ name: rails
26
36
  prerelease: false
27
- version_requirements: *10818300
28
- - !ruby/object:Gem::Dependency
29
- name: jeweler
30
- requirement: &10817360 !ruby/object:Gem::Requirement
37
+ type: :runtime
38
+ requirement: *id001
39
+ - !ruby/object:Gem::Dependency
40
+ version_requirements: &id002 !ruby/object:Gem::Requirement
31
41
  none: false
32
- requirements:
33
- - - ! '>='
34
- - !ruby/object:Gem::Version
35
- version: '0'
36
- type: :development
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ name: jeweler
37
50
  prerelease: false
38
- version_requirements: *10817360
39
- - !ruby/object:Gem::Dependency
40
- name: rspec
41
- requirement: &10816140 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ! '>='
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
51
  type: :development
48
- prerelease: false
49
- version_requirements: *10816140
50
- - !ruby/object:Gem::Dependency
51
- name: sqlite3
52
- requirement: &10813220 !ruby/object:Gem::Requirement
52
+ requirement: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
53
55
  none: false
54
- requirements:
55
- - - ! '>='
56
- - !ruby/object:Gem::Version
57
- version: '0'
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ name: rspec
64
+ prerelease: false
58
65
  type: :development
66
+ requirement: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ name: sqlite3
59
78
  prerelease: false
60
- version_requirements: *10813220
61
- - !ruby/object:Gem::Dependency
62
- name: genspec
63
- requirement: &10812140 !ruby/object:Gem::Requirement
79
+ type: :development
80
+ requirement: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ version_requirements: &id005 !ruby/object:Gem::Requirement
64
83
  none: false
65
- requirements:
66
- - - =
67
- - !ruby/object:Gem::Version
84
+ requirements:
85
+ - - "="
86
+ - !ruby/object:Gem::Version
87
+ hash: 21
88
+ segments:
89
+ - 0
90
+ - 2
91
+ - 1
68
92
  version: 0.2.1
69
- type: :development
93
+ name: genspec
70
94
  prerelease: false
71
- version_requirements: *10812140
72
- description: ! 'Power Enum allows you to treat instances of your ActiveRecord models
73
- as though they were an enumeration of values.
74
-
75
- It allows you to cleanly solve many of the problems that the traditional Rails alternatives
76
- handle poorly if at all.
77
-
78
- It is particularly suitable for scenarios where your Rails application is not the
79
- only user of the database, such as
80
-
81
- when it''s used for analytics or reporting.
95
+ type: :development
96
+ requirement: *id005
97
+ description: |
98
+ Power Enum allows you to treat instances of your ActiveRecord models as though they were an enumeration of values.
99
+ It allows you to cleanly solve many of the problems that the traditional Rails alternatives handle poorly if at all.
100
+ It is particularly suitable for scenarios where your Rails application is not the only user of the database, such as
101
+ when it's used for analytics or reporting.
82
102
 
83
- '
84
103
  email: arthur.shagall@gmail.com
85
104
  executables: []
105
+
86
106
  extensions: []
87
- extra_rdoc_files:
107
+
108
+ extra_rdoc_files:
88
109
  - LICENSE
89
110
  - README.md
90
- files:
111
+ files:
91
112
  - examples/virtual_enumerations_sample.rb
92
113
  - lib/active_record/acts/enumerated.rb
93
114
  - lib/active_record/aggregations/has_enumerated.rb
@@ -105,30 +126,36 @@ files:
105
126
  - README.md
106
127
  homepage: http://github.com/albertosaurus/enumerations_mixin
107
128
  licenses: []
129
+
108
130
  post_install_message:
109
131
  rdoc_options: []
110
- require_paths:
132
+
133
+ require_paths:
111
134
  - lib
112
- required_ruby_version: !ruby/object:Gem::Requirement
135
+ required_ruby_version: !ruby/object:Gem::Requirement
113
136
  none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- segments:
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ hash: 3
141
+ segments:
119
142
  - 0
120
- hash: -2560307407996447465
121
- required_rubygems_version: !ruby/object:Gem::Requirement
143
+ version: "0"
144
+ required_rubygems_version: !ruby/object:Gem::Requirement
122
145
  none: false
123
- requirements:
124
- - - ! '>='
125
- - !ruby/object:Gem::Version
126
- version: '0'
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ hash: 3
150
+ segments:
151
+ - 0
152
+ version: "0"
127
153
  requirements: []
154
+
128
155
  rubyforge_project:
129
156
  rubygems_version: 1.8.10
130
157
  signing_key:
131
158
  specification_version: 3
132
- summary: Allows you to treat instances of your ActiveRecord models as though they
133
- were an enumeration of values
159
+ summary: Allows you to treat instances of your ActiveRecord models as though they were an enumeration of values
134
160
  test_files: []
161
+