erb_form 0.1.2 → 0.1.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.
@@ -47,7 +47,7 @@ module ErbForm
47
47
  end
48
48
 
49
49
  def locals(attribute_name, options)
50
- options.except(:form, :attribute_name, :error, :hint, :input, :label).tap { |o|
50
+ options.except(:form, :attribute_name, :as, :error, :hint, :input, :label).tap { |o|
51
51
  o[:form] = self
52
52
  o[:attribute_name] = attribute_name
53
53
  o[:error_options] = simplify_options(:error, options)
@@ -70,13 +70,17 @@ module ErbForm
70
70
  def simplify_options(key, options = {})
71
71
  newkey = case key
72
72
  when :error
73
+ locals = { :error_prefix => options[:error] }
73
74
  :error_prefix
74
75
  when :input
76
+ locals = { :input_html => options[:input] }
77
+ locals[:as] = options[:as] if options.has_key?(:as)
75
78
  :input_html
76
79
  else
80
+ locals = { key => options[key] }
77
81
  key
78
82
  end
79
- options[key].is_a?(Hash) && newkey == key ? options[key] : { newkey => (options[key]) }
83
+ options[key].is_a?(Hash) && newkey == key ? options[key] : locals
80
84
  end
81
85
  end
82
86
 
@@ -1,3 +1,3 @@
1
1
  module ErbForm
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -1,3 +1,3 @@
1
1
  <div class="blogs_name_field">
2
- <%= form.input attribute_name %>
2
+ <%= form.input attribute_name, input_options %>
3
3
  </div>
@@ -0,0 +1,5 @@
1
+ <%= form_for(@blog) do |f| %>
2
+ <fieldset>
3
+ <%= f.field :name, { :as => 'boolean' } %>
4
+ </fieldset>
5
+ <% end %>
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+
3
+ describe "blogs/render_input_as_different_type" do
4
+ before(:each) do
5
+ assign(:blog, stub_model(Blog,
6
+ :name => "",
7
+ ).as_new_record)
8
+ end
9
+
10
+ describe "when the as option is passed" do
11
+ it "finds the correct layout file" do
12
+ render
13
+ rendered.should have_selector "div", :class => "blogs_name_field"
14
+ end
15
+
16
+ it "renders the input as that type" do
17
+ render
18
+ rendered.should have_selector "input", :type => 'checkbox'
19
+ end
20
+ end
21
+ 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.2
4
+ version: 0.1.3
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-23 00:00:00.000000000Z
12
+ date: 2012-02-24 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: simple_form
16
- requirement: &2156007040 !ruby/object:Gem::Requirement
16
+ requirement: &2152499440 !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: *2156007040
24
+ version_requirements: *2152499440
25
25
  description: Wrap form helper methods in re-usable erb templates.
26
26
  email:
27
27
  - 23inhouse@gmail.com
@@ -55,6 +55,7 @@ files:
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
57
  - spec/test_app/app/views/blogs/render_field_with_extra_options.html.erb
58
+ - spec/test_app/app/views/blogs/render_input_as_different_type.html.erb
58
59
  - spec/test_app/app/views/blogs/render_multiple_layouts.html.erb
59
60
  - spec/test_app/app/views/blogs/render_simple_form_with_options.html.erb
60
61
  - spec/test_app/app/views/blogs/render_with_simple_form.html.erb
@@ -91,6 +92,7 @@ files:
91
92
  - spec/test_app/spec/views/blogs/missing_attribute_template_error.html.erb_spec.rb
92
93
  - spec/test_app/spec/views/blogs/missing_layout_template_error.html.erb_spec.rb
93
94
  - spec/test_app/spec/views/blogs/render_field_with_extra_options.html.erb_spec.rb
95
+ - spec/test_app/spec/views/blogs/render_input_as_different_type.html.erb_spec
94
96
  - spec/test_app/spec/views/blogs/render_multiple_layouts.html.erb_spec.rb
95
97
  - spec/test_app/spec/views/blogs/render_simple_form_with_options.html.erb_spec.rb
96
98
  - spec/test_app/spec/views/blogs/render_with_simple_form.html.erb_spec.rb
@@ -138,6 +140,7 @@ test_files:
138
140
  - spec/test_app/app/views/blogs/missing_layout_template_error.html.erb
139
141
  - spec/test_app/app/views/blogs/name_field.html.erb
140
142
  - spec/test_app/app/views/blogs/render_field_with_extra_options.html.erb
143
+ - spec/test_app/app/views/blogs/render_input_as_different_type.html.erb
141
144
  - spec/test_app/app/views/blogs/render_multiple_layouts.html.erb
142
145
  - spec/test_app/app/views/blogs/render_simple_form_with_options.html.erb
143
146
  - spec/test_app/app/views/blogs/render_with_simple_form.html.erb
@@ -174,6 +177,7 @@ test_files:
174
177
  - spec/test_app/spec/views/blogs/missing_attribute_template_error.html.erb_spec.rb
175
178
  - spec/test_app/spec/views/blogs/missing_layout_template_error.html.erb_spec.rb
176
179
  - spec/test_app/spec/views/blogs/render_field_with_extra_options.html.erb_spec.rb
180
+ - spec/test_app/spec/views/blogs/render_input_as_different_type.html.erb_spec
177
181
  - spec/test_app/spec/views/blogs/render_multiple_layouts.html.erb_spec.rb
178
182
  - spec/test_app/spec/views/blogs/render_simple_form_with_options.html.erb_spec.rb
179
183
  - spec/test_app/spec/views/blogs/render_with_simple_form.html.erb_spec.rb