erb_form 0.1.5 → 0.1.6

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.
@@ -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