power_enum 0.9.2 → 0.9.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.markdown +14 -4
- data/lib/power_enum/enumerated.rb +10 -4
- metadata +3 -3
data/README.markdown
CHANGED
@@ -57,8 +57,8 @@ then run
|
|
57
57
|
This package adds:
|
58
58
|
- Two mixins and a helper to ActiveRecord
|
59
59
|
- Methods to migrations to simplify the creation of backing tables
|
60
|
-
-
|
61
|
-
- Custom RSpec matchers to streamline the testing of enums and enumerated attributes
|
60
|
+
- Two generators to streamline working with enums
|
61
|
+
- Custom RSpec matchers to streamline the testing of enums and enumerated attributes
|
62
62
|
|
63
63
|
`acts_as_enumerated` provides capabilities to treat your model and its records as an enumeration.
|
64
64
|
At a minimum, the database table for an acts\_as\_enumerated must contain an 'id' column and a column
|
@@ -94,7 +94,7 @@ You should see output similar to this:
|
|
94
94
|
create test/unit/booking_status_test.rb
|
95
95
|
|
96
96
|
That's all you need to get started. In many cases, no further work on the enum is necessary. You can run `rails generate enum --help`
|
97
|
-
to see a description of the generator options. Notice, that while a unit
|
97
|
+
to see a description of the generator options. Notice, that while a unit test is generated by default, a fixture isn't. That is because
|
98
98
|
fixtures are not an ideal way to test acts\_as\_enumerated models. I generally prefer having a hook to seed the database from seeds.rb
|
99
99
|
from a pre-test Rake task.
|
100
100
|
|
@@ -327,6 +327,16 @@ BookingStatus.update_enumerations_model do
|
|
327
327
|
end
|
328
328
|
```
|
329
329
|
|
330
|
+
Example 2 (since version 0.9.3):
|
331
|
+
|
332
|
+
```ruby
|
333
|
+
BookingStatus.update_enumerations_model do |klass|
|
334
|
+
klass.create :name => 'Foo',
|
335
|
+
:description => 'Bar',
|
336
|
+
:active => false
|
337
|
+
end
|
338
|
+
```
|
339
|
+
|
330
340
|
##### acts\_as\_enumerated? (since version 0.8.6)
|
331
341
|
|
332
342
|
Returns `true` for ActiveRecord models that act as enumerated, `false` for others. So
|
@@ -565,7 +575,7 @@ you can use ActiveRecord::VirtualEnumerations to reduce that clutter.
|
|
565
575
|
|
566
576
|
Create a custom Rails initializer: Rails.root/config/initializers/virtual\_enumerations.rb
|
567
577
|
|
568
|
-
As of version 0.9.2, there is a built in generator for this:
|
578
|
+
NOTE: As of version 0.9.2, there is a built in generator for this:
|
569
579
|
|
570
580
|
```bash
|
571
581
|
rails generate virtual_enumerations_initializer
|
@@ -235,13 +235,19 @@ module PowerEnum::Enumerated
|
|
235
235
|
# The preferred method to update an enumerations model. The same
|
236
236
|
# warnings as 'purge_enumerations_cache' and
|
237
237
|
# 'enumerations_model_update_permitted' apply. Pass a block to this
|
238
|
-
# method
|
239
|
-
# flushed automatically.
|
240
|
-
|
238
|
+
# method where you perform your updates. Cache will be
|
239
|
+
# flushed automatically. If your block takes an argument, will pass in
|
240
|
+
# the model class. The argument is optional.
|
241
|
+
def update_enumerations_model(&block)
|
241
242
|
if block_given?
|
242
243
|
begin
|
243
244
|
self.enumeration_model_updates_permitted = true
|
244
|
-
|
245
|
+
case block.arity
|
246
|
+
when 0
|
247
|
+
yield
|
248
|
+
else
|
249
|
+
yield self
|
250
|
+
end
|
245
251
|
ensure
|
246
252
|
purge_enumerations_cache
|
247
253
|
self.enumeration_model_updates_permitted = false
|
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.9.
|
4
|
+
version: 0.9.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2012-09-
|
15
|
+
date: 2012-09-24 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rails
|
@@ -145,7 +145,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
145
|
version: '0'
|
146
146
|
segments:
|
147
147
|
- 0
|
148
|
-
hash: -
|
148
|
+
hash: -2052291500201023565
|
149
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
150
|
none: false
|
151
151
|
requirements:
|