jeffp-enumerated_attribute 0.2.0.2 → 0.2.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.
@@ -33,6 +33,7 @@ encapsulation, quicker implementation and cleaner code.
33
33
  Features include:
34
34
  * ActiveRecord integration
35
35
  * ActionView form helpers
36
+ * Scaffold generator integration
36
37
  * Configurable enumeration labels
37
38
  * Auto-defined attribute methods
38
39
  * Dynamically-generated predicate methods
@@ -84,6 +85,10 @@ Expose the enumeration in your forms with +enum_select+
84
85
  <%= submit_tag 'save' %>
85
86
  <% end %>
86
87
 
88
+ or generate a scaffold with one of your favorite scaffold generators. Currently
89
+ support scaffold generators include: scaffold, nifty_scaffold, rspec_scaffold, and wizardly_scaffold.
90
+ See the section 'Generating Scaffolds' below.
91
+
87
92
  The select options text can be customized. See 'Customizing Labels' in the Integration section.
88
93
 
89
94
  == Ruby Example
@@ -466,6 +471,22 @@ example with the +form_tag+ and a @user object.
466
471
  <%= submit_tag 'Register' %>
467
472
  <% end %>
468
473
 
474
+ ==== Generating Scaffolds
475
+
476
+ You can generate views with enumerations using your favorite scaffold generator. Currently
477
+ supported generators include: scaffold, nifty_scaffold, rspec_scaffold and wizardly_scaffold.
478
+ For most scaffolds there are two steps. First, generate the scaffold views and
479
+ migrations using the 'enum' type for enumerations
480
+
481
+ ./script/generate scaffold contractor name:string gender:enum age:integer status:enum
482
+
483
+ Second, do not forget to add the +enum_attr+ macro to the generated model and migrate the database
484
+
485
+ class Contractor < ActiveRecord::Base
486
+ enum_attr :gender, %w(male female)
487
+ enum_attr :status, %w(available unavailable)
488
+ end
489
+
469
490
 
470
491
  === Implementation Notes
471
492
 
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/contrib/sshpublisher'
5
5
 
6
6
  spec = Gem::Specification.new do |s|
7
7
  s.name = 'enumerated_attribute'
8
- s.version = '0.2.0.2'
8
+ s.version = '0.2.1'
9
9
  s.platform = Gem::Platform::RUBY
10
10
  s.description = 'Enumerated model attributes and view helpers'
11
11
  s.summary = 'Add enumerated attributes to your models and expose them in drop-down lists in your views'
@@ -18,7 +18,7 @@ spec = Gem::Specification.new do |s|
18
18
  s.test_files = Dir['spec/*_spec.rb']
19
19
 
20
20
  s.author = 'Jeff Patmon'
21
- s.email = 'jpatmon@yahoo.com'
21
+ s.email = 'jpatmon@gmail.com'
22
22
  s.homepage = 'http://github.com/jeffp/enumerated_attribute/tree/master'
23
23
  end
24
24
 
@@ -19,6 +19,22 @@ if defined?(ActiveRecord)
19
19
  end
20
20
  end
21
21
 
22
+ #ARGV is used by generators -- if it contains one of these generator commands - add enumeration support
23
+ unless ((ARGV || []) & ["scaffold", "rspec_scaffold", "nifty_scaffold"]).empty?
24
+ require 'rails_generator'
25
+ module Rails
26
+ module Generator
27
+ class GeneratedAttribute
28
+ def field_type_with_enumerated_attribute
29
+ return (@field_type = :enum_select) if type == :enum
30
+ field_type_without_enumerated_attribute
31
+ end
32
+ alias_method_chain :field_type, :enumerated_attribute
33
+ end
34
+ end
35
+ end
36
+ end
37
+
22
38
  if defined?(ActionView::Base)
23
39
  module ActionView
24
40
  module Helpers
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jeffp-enumerated_attribute
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.2
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Patmon
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies: []
15
15
 
16
16
  description: Enumerated model attributes and view helpers
17
- email: jpatmon@yahoo.com
17
+ email: jpatmon@gmail.com
18
18
  executables: []
19
19
 
20
20
  extensions: []