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.
- data/lib/erb_form/builder.rb +7 -4
- data/lib/erb_form/version.rb +1 -1
- data/spec/test_app/app/views/blogs/name_field.html.erb +1 -0
- data/spec/test_app/app/views/blogs/optional_form_field.html.erb +6 -0
- data/spec/test_app/app/views/blogs/render_optional_and_required_form.html.erb +6 -0
- data/spec/test_app/app/views/blogs/render_simple_form_with_options.html.erb +4 -0
- data/spec/test_app/app/views/blogs/required_form_field.html.erb +6 -0
- data/spec/test_app/config/initializers/simple_form.rb +1 -1
- data/spec/test_app/spec/views/blogs/render_input_as_different_type.html.erb_spec.rb +6 -0
- data/spec/test_app/spec/views/blogs/render_optional_and_required_form.html.erb_spec.rb +30 -0
- data/spec/test_app/spec/views/blogs/render_simple_form_with_options.html.erb_spec.rb +3 -1
- metadata +12 -4
data/lib/erb_form/builder.rb
CHANGED
@@ -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
|
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
|
data/lib/erb_form/version.rb
CHANGED
@@ -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
|
-
|
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
|
-
:
|
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.
|
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-
|
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: &
|
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: *
|
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
|