erb_form 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -50,7 +50,7 @@ module ErbForm
50
50
  end
51
51
 
52
52
  def locals(attribute_name, options)
53
- options.except(:form, :attribute_name, :as, :collection, :error, :hint, :input, :label).tap { |o|
53
+ options.except(:form, :attribute_name, :as, :collection, :required, :error, :hint, :input, :label).tap { |o|
54
54
  o[:form] = self
55
55
  o[:attribute_name] = attribute_name
56
56
  o[:error_options] = simplify_options(:error, options)
@@ -73,13 +73,16 @@ module ErbForm
73
73
  def simplify_options(key, options = {})
74
74
  newkey = case key
75
75
  when :error
76
- locals = { :error_prefix => options[:error] }
76
+ locals = { :error_prefix => options[:error] || options[:label] }
77
77
  :error_prefix
78
78
  when :input
79
79
  locals = { :input_html => options[:input] }
80
- locals[:as] = options[:as] if options.has_key?(:as)
81
- locals[:collection] = options[:collection] if options.has_key?(:collection)
80
+ locals.merge!(options.select { |k,v| [:as, :collection, :required].include?(k)})
82
81
  :input_html
82
+ when :label
83
+ locals = { :label => options[:label] }
84
+ locals.merge!(options.select { |k,v| [:as, :required].include?(k)})
85
+ :modified
83
86
  else
84
87
  locals = { key => options[key] }
85
88
  key
@@ -1,3 +1,3 @@
1
1
  module ErbForm
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -1,3 +1,4 @@
1
1
  <div class="blogs_name_field">
2
+ <%= form.label attribute_name, label_options %>
2
3
  <%= form.input attribute_name, input_options %>
3
4
  </div>
@@ -0,0 +1,6 @@
1
+ <div class="optional_field">
2
+ <%= form.label attribute_name, label_options %>
3
+ <%= form.input attribute_name, input_options %>
4
+ <%= form.hint attribute_name, hint_options %>
5
+ <%= form.full_error attribute_name, error_options %>
6
+ </div>
@@ -0,0 +1,6 @@
1
+ <%= form_for(@blog) do |f| %>
2
+ <fieldset>
3
+ <%= f.field :post, { :layout => 'required_form' } %>
4
+ <%= f.field :published, { :layout => 'optional_form', :required => true } %>
5
+ </fieldset>
6
+ <% end %>
@@ -7,5 +7,9 @@
7
7
  :input => {:size => 5},
8
8
  :label => 'My custom label' }
9
9
  %>
10
+ <%= f.field :post, {
11
+ :layout => 'simple_form',
12
+ :label => 'My custom label' }
13
+ %>
10
14
  </fieldset>
11
15
  <% end %>
@@ -0,0 +1,6 @@
1
+ <div class="required_field">
2
+ <%= form.label attribute_name, label_options %>
3
+ <%= form.input attribute_name, input_options %>
4
+ <%= form.hint attribute_name, hint_options %>
5
+ <%= form.full_error attribute_name, error_options %>
6
+ </div>
@@ -98,7 +98,7 @@ SimpleForm.setup do |config|
98
98
  # config.form_class = :simple_form
99
99
 
100
100
  # Whether attributes are required by default (or not). Default is true.
101
- # config.required_by_default = true
101
+ config.required_by_default = false
102
102
 
103
103
  # Tell browsers whether to use default HTML5 validations (novalidate option).
104
104
  # Default is enabled.
@@ -16,6 +16,12 @@ describe "blogs/render_input_as_different_type" do
16
16
  it "renders the input as that type" do
17
17
  render
18
18
  rendered.should have_selector "input", :type => 'checkbox'
19
+ rendered.should have_selector "input", :class => 'boolean required'
20
+ end
21
+
22
+ it "renders the label as that type" do
23
+ render
24
+ rendered.should have_selector "label", :class => 'boolean required'
19
25
  end
20
26
  end
21
27
  end
@@ -0,0 +1,30 @@
1
+ require "spec_helper"
2
+
3
+ describe "blogs/render_optional_and_required_form" do
4
+ before(:each) do
5
+ assign(:blog, stub_model(Blog,
6
+ :post => "",
7
+ :published => ""
8
+ ).as_new_record)
9
+ end
10
+
11
+ describe "when there are simeple form helpers" do
12
+ it "finds the correct layout file" do
13
+ render
14
+ rendered.should have_selector "div", :class => "optional_field"
15
+ rendered.should have_selector "div", :class => "required_field"
16
+ end
17
+
18
+ it "renders the helpers with a required class" do
19
+ render
20
+ rendered.should have_selector "label", :class => "text optional"
21
+ rendered.should have_selector "textarea", :class => "text optional"
22
+ end
23
+
24
+ it "renders the helpers with an optional class" do
25
+ render
26
+ rendered.should have_selector "label", :class => "boolean required"
27
+ rendered.should have_selector "input", :class => "boolean required"
28
+ end
29
+ end
30
+ end
@@ -4,7 +4,8 @@ describe "blogs/render_simple_form_with_options" do
4
4
  before(:each) do
5
5
  assign(:blog, stub_model(Blog,
6
6
  :name => "",
7
- :errors => {:name => ['must not be blank']}
7
+ :post => "",
8
+ :errors => {:name => ['must not be blank'], :post => ['must not be blank']}
8
9
  ).as_new_record)
9
10
  end
10
11
 
@@ -36,6 +37,7 @@ describe "blogs/render_simple_form_with_options" do
36
37
  it "renders the error" do
37
38
  render
38
39
  rendered.should contain "My custom error must not be blank"
40
+ rendered.should contain "My custom label must not be blank"
39
41
  end
40
42
  end
41
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erb_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-24 00:00:00.000000000Z
12
+ date: 2012-02-25 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: simple_form
16
- requirement: &2152017640 !ruby/object:Gem::Requirement
16
+ requirement: &2153122900 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 2.0.0.rc
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152017640
24
+ version_requirements: *2153122900
25
25
  description: Wrap form helper methods in re-usable erb templates.
26
26
  email:
27
27
  - 23inhouse@gmail.com
@@ -54,6 +54,7 @@ files:
54
54
  - spec/test_app/app/views/blogs/missing_attribute_template_error.html.erb
55
55
  - spec/test_app/app/views/blogs/missing_layout_template_error.html.erb
56
56
  - spec/test_app/app/views/blogs/name_field.html.erb
57
+ - spec/test_app/app/views/blogs/optional_form_field.html.erb
57
58
  - spec/test_app/app/views/blogs/partials/_partial.html.erb
58
59
  - spec/test_app/app/views/blogs/partials/name_field.html.erb
59
60
  - spec/test_app/app/views/blogs/partials/simple_form_field.html.erb
@@ -62,8 +63,10 @@ files:
62
63
  - spec/test_app/app/views/blogs/render_input_as_a_collection.html.erb
63
64
  - spec/test_app/app/views/blogs/render_input_as_different_type.html.erb
64
65
  - spec/test_app/app/views/blogs/render_multiple_layouts.html.erb
66
+ - spec/test_app/app/views/blogs/render_optional_and_required_form.html.erb
65
67
  - spec/test_app/app/views/blogs/render_simple_form_with_options.html.erb
66
68
  - spec/test_app/app/views/blogs/render_with_simple_form.html.erb
69
+ - spec/test_app/app/views/blogs/required_form_field.html.erb
67
70
  - spec/test_app/app/views/blogs/simple_form_field.html.erb
68
71
  - spec/test_app/app/views/forms/default/field.html.erb
69
72
  - spec/test_app/app/views/forms/default/legacy_field.html.erb
@@ -101,6 +104,7 @@ files:
101
104
  - spec/test_app/spec/views/blogs/render_input_as_a_collection.html.erb_spec.rb
102
105
  - spec/test_app/spec/views/blogs/render_input_as_different_type.html.erb_spec.rb
103
106
  - spec/test_app/spec/views/blogs/render_multiple_layouts.html.erb_spec.rb
107
+ - spec/test_app/spec/views/blogs/render_optional_and_required_form.html.erb_spec.rb
104
108
  - spec/test_app/spec/views/blogs/render_simple_form_with_options.html.erb_spec.rb
105
109
  - spec/test_app/spec/views/blogs/render_with_simple_form.html.erb_spec.rb
106
110
  homepage: ''
@@ -146,6 +150,7 @@ test_files:
146
150
  - spec/test_app/app/views/blogs/missing_attribute_template_error.html.erb
147
151
  - spec/test_app/app/views/blogs/missing_layout_template_error.html.erb
148
152
  - spec/test_app/app/views/blogs/name_field.html.erb
153
+ - spec/test_app/app/views/blogs/optional_form_field.html.erb
149
154
  - spec/test_app/app/views/blogs/partials/_partial.html.erb
150
155
  - spec/test_app/app/views/blogs/partials/name_field.html.erb
151
156
  - spec/test_app/app/views/blogs/partials/simple_form_field.html.erb
@@ -154,8 +159,10 @@ test_files:
154
159
  - spec/test_app/app/views/blogs/render_input_as_a_collection.html.erb
155
160
  - spec/test_app/app/views/blogs/render_input_as_different_type.html.erb
156
161
  - spec/test_app/app/views/blogs/render_multiple_layouts.html.erb
162
+ - spec/test_app/app/views/blogs/render_optional_and_required_form.html.erb
157
163
  - spec/test_app/app/views/blogs/render_simple_form_with_options.html.erb
158
164
  - spec/test_app/app/views/blogs/render_with_simple_form.html.erb
165
+ - spec/test_app/app/views/blogs/required_form_field.html.erb
159
166
  - spec/test_app/app/views/blogs/simple_form_field.html.erb
160
167
  - spec/test_app/app/views/forms/default/field.html.erb
161
168
  - spec/test_app/app/views/forms/default/legacy_field.html.erb
@@ -193,5 +200,6 @@ test_files:
193
200
  - spec/test_app/spec/views/blogs/render_input_as_a_collection.html.erb_spec.rb
194
201
  - spec/test_app/spec/views/blogs/render_input_as_different_type.html.erb_spec.rb
195
202
  - spec/test_app/spec/views/blogs/render_multiple_layouts.html.erb_spec.rb
203
+ - spec/test_app/spec/views/blogs/render_optional_and_required_form.html.erb_spec.rb
196
204
  - spec/test_app/spec/views/blogs/render_simple_form_with_options.html.erb_spec.rb
197
205
  - spec/test_app/spec/views/blogs/render_with_simple_form.html.erb_spec.rb