simple_form 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of simple_form might be problematic. Click here for more details.

data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 2.0.1
2
+
3
+ ### bug fix
4
+ * Sanitaze html attributes to `label` method. ([@nashby](https://github.com/nashby)).
5
+ Closes [#472](https://github.com/plataformatec/simple_form/issues/472)
6
+ * Make `collection_check_boxes` and `collection_radio_buttons` work with local variables.
7
+ Closes [#474](https://github.com/plataformatec/simple_form/issues/474)
8
+ * Use `html5` component by default in the bootstrap generator. ([@isc](https://github.com/isc)).
9
+ Closes [#471](https://github.com/plataformatec/simple_form/issues/471)
10
+
1
11
  ## 2.0.0
2
12
 
3
13
  ### enhancements
@@ -46,6 +46,7 @@ SimpleForm.setup do |config|
46
46
  end
47
47
  <% if options.bootstrap? %>
48
48
  config.wrappers :bootstrap, :tag => 'div', :class => 'control-group', :error_class => 'error' do |b|
49
+ b.use :html5
49
50
  b.use :placeholder
50
51
  b.use :label
51
52
  b.wrapper :tag => 'div', :class => 'controls' do |ba|
@@ -56,6 +57,7 @@ SimpleForm.setup do |config|
56
57
  end
57
58
 
58
59
  config.wrappers :prepend, :tag => 'div', :class => "control-group", :error_class => 'error' do |b|
60
+ b.use :html5
59
61
  b.use :placeholder
60
62
  b.use :label
61
63
  b.wrapper :tag => 'div', :class => 'controls' do |input|
@@ -68,6 +70,7 @@ SimpleForm.setup do |config|
68
70
  end
69
71
 
70
72
  config.wrappers :append, :tag => 'div', :class => "control-group", :error_class => 'error' do |b|
73
+ b.use :html5
71
74
  b.use :placeholder
72
75
  b.use :label
73
76
  b.wrapper :tag => 'div', :class => 'controls' do |input|
@@ -5,10 +5,9 @@ module SimpleForm
5
5
  class BuilderBase #:nodoc:
6
6
  attr_reader :object, :text, :value
7
7
 
8
- def initialize(template_object, object_name, method_name, object,
9
- sanitized_attribute_name, text, value, input_html_options)
10
- @template_object = template_object
11
- @object_name = object_name
8
+ def initialize(form_builder, method_name, object, sanitized_attribute_name, text,
9
+ value, input_html_options)
10
+ @form_builder = form_builder
12
11
  @method_name = method_name
13
12
  @object = object
14
13
  @sanitized_attribute_name = sanitized_attribute_name
@@ -18,7 +17,7 @@ module SimpleForm
18
17
  end
19
18
 
20
19
  def label(label_html_options={}, &block)
21
- @template_object.label(@object_name, @sanitized_attribute_name, @text, label_html_options, &block)
20
+ @form_builder.label(@sanitized_attribute_name, @text, label_html_options, &block)
22
21
  end
23
22
  end
24
23
 
@@ -26,7 +25,7 @@ module SimpleForm
26
25
  class RadioButtonBuilder < BuilderBase #:nodoc:
27
26
  def radio_button(extra_html_options={})
28
27
  html_options = extra_html_options.merge(@input_html_options)
29
- @template_object.radio_button(@object_name, @method_name, @value, html_options)
28
+ @form_builder.radio_button(@method_name, @value, html_options)
30
29
  end
31
30
  end
32
31
 
@@ -34,7 +33,7 @@ module SimpleForm
34
33
  class CheckBoxBuilder < BuilderBase #:nodoc:
35
34
  def check_box(extra_html_options={})
36
35
  html_options = extra_html_options.merge(@input_html_options)
37
- @template_object.check_box(@object_name, @method_name, html_options, @value, nil)
36
+ @form_builder.check_box(@method_name, html_options, @value, nil)
38
37
  end
39
38
  end
40
39
 
@@ -207,7 +206,7 @@ module SimpleForm
207
206
  private
208
207
 
209
208
  def instantiate_builder(builder_class, attribute, item, value, text, html_options)
210
- builder_class.new(@template, object_name, attribute, item,
209
+ builder_class.new(self, attribute, item,
211
210
  sanitize_attribute_name(attribute, value), text, value, html_options)
212
211
  end
213
212
 
@@ -303,7 +303,7 @@ module SimpleForm
303
303
  return super if args.first.is_a?(String) || block_given?
304
304
 
305
305
  options = args.extract_options!.dup
306
- options[:label_html] = options.except(:label, :required)
306
+ options[:label_html] = options.except(:label, :required, :as)
307
307
 
308
308
  column = find_attribute_column(attribute_name)
309
309
  input_type = default_input_type(attribute_name, column, options)
@@ -20,16 +20,12 @@ module SimpleForm
20
20
  protected
21
21
 
22
22
  def apply_default_collection_options!(options)
23
- unless options.key?(:item_wrapper_tag)
24
- options[:item_wrapper_tag] = SimpleForm.item_wrapper_tag
25
- end
23
+ options[:item_wrapper_tag] ||= options.fetch(:item_wrapper_tag, SimpleForm.item_wrapper_tag)
26
24
  options[:item_wrapper_class] = [
27
25
  item_wrapper_class, options[:item_wrapper_class], SimpleForm.item_wrapper_class
28
26
  ].compact.presence
29
27
 
30
- unless options.key?(:collection_wrapper_tag)
31
- options[:collection_wrapper_tag] = SimpleForm.collection_wrapper_tag
32
- end
28
+ options[:collection_wrapper_tag] ||= options.fetch(:collection_wrapper_tag, SimpleForm.collection_wrapper_tag)
33
29
  options[:collection_wrapper_class] = [
34
30
  options[:collection_wrapper_class], SimpleForm.collection_wrapper_class
35
31
  ].compact.presence
@@ -1,3 +1,3 @@
1
1
  module SimpleForm
2
- VERSION = "2.0.0".freeze
2
+ VERSION = "2.0.1".freeze
3
3
  end
@@ -48,6 +48,15 @@ class BuilderTest < ActionView::TestCase
48
48
  assert_select 'label.collection_radio_buttons[for=user_name_199]', '$1.99'
49
49
  end
50
50
 
51
+ test 'collection radio checks the correct value to local variables' do
52
+ user = User.new
53
+ user.active = false
54
+ with_collection_radio_buttons user, :active, [true, false], :to_s, :to_s
55
+
56
+ assert_select 'form input[type=radio][value=true]'
57
+ assert_select 'form input[type=radio][value=false][checked=checked]'
58
+ end
59
+
51
60
  test 'collection radio accepts checked item' do
52
61
  with_collection_radio_buttons @user, :active, [[1, true], [0, false]], :last, :first, :checked => true
53
62
 
@@ -276,6 +285,18 @@ class BuilderTest < ActionView::TestCase
276
285
  assert_select 'label.collection_check_boxes[for=user_name_199]', '$1.99'
277
286
  end
278
287
 
288
+ test 'collection check box checks the correct value to local variables' do
289
+ user = User.new
290
+ user.tag_ids = [1, 3]
291
+ collection = (1..3).map{|i| [i, "Tag #{i}"] }
292
+ with_collection_check_boxes user, :tag_ids, collection, :first, :last
293
+
294
+ assert_select 'form input[type=checkbox][value=1][checked=checked]'
295
+ assert_select 'form input[type=checkbox][value=3][checked=checked]'
296
+ assert_no_select 'form input[type=checkbox][value=2][checked=checked]'
297
+ end
298
+
299
+
279
300
  test 'collection check box accepts selected values as :checked option' do
280
301
  collection = (1..3).map{|i| [i, "Tag #{i}"] }
281
302
  with_collection_check_boxes @user, :tag_ids, collection, :first, :last, :checked => [1, 3]
@@ -13,6 +13,12 @@ class LabelTest < ActionView::TestCase
13
13
  assert_select 'label.string[for=user_name]', /Name/
14
14
  end
15
15
 
16
+ test 'builder should generate a label for the boolean attrbiute' do
17
+ with_label_for @user, :name, :as => :boolean
18
+ assert_select 'label.boolean[for=user_name]', /Name/
19
+ assert_no_select 'label[as=boolean]'
20
+ end
21
+
16
22
  test 'builder should generate a label componet tag with a clean HTML' do
17
23
  with_label_for @user, :name
18
24
  assert_no_select 'label.string[label_html]'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-02-23 00:00:00.000000000 Z
14
+ date: 2012-02-27 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activemodel
18
- requirement: &70196111502700 !ruby/object:Gem::Requirement
18
+ requirement: &70290445717740 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ~>
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '3.0'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70196111502700
26
+ version_requirements: *70290445717740
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionpack
29
- requirement: &70196111500600 !ruby/object:Gem::Requirement
29
+ requirement: &70290445716540 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,7 +34,7 @@ dependencies:
34
34
  version: '3.0'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70196111500600
37
+ version_requirements: *70290445716540
38
38
  description: Forms made easy!
39
39
  email: contact@plataformatec.com.br
40
40
  executables: []
@@ -150,18 +150,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
150
  - - ! '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
- segments:
154
- - 0
155
- hash: 284620577294605378
156
153
  required_rubygems_version: !ruby/object:Gem::Requirement
157
154
  none: false
158
155
  requirements:
159
156
  - - ! '>='
160
157
  - !ruby/object:Gem::Version
161
158
  version: '0'
162
- segments:
163
- - 0
164
- hash: 284620577294605378
165
159
  requirements: []
166
160
  rubyforge_project: simple_form
167
161
  rubygems_version: 1.8.11