simple_form 1.5.0 → 1.5.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.rdoc
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 1.5.1
|
2
|
+
|
3
|
+
* enhancements
|
4
|
+
* `:components` options is now deprecated
|
5
|
+
|
6
|
+
* bug fix
|
7
|
+
* Fallback to default label when block is provided (github.com/pivotal-casebook)
|
8
|
+
* Do not override default selection through attribute value in collection select when label/value methods are lambdas
|
9
|
+
|
1
10
|
== 1.5.0
|
2
11
|
|
3
12
|
* enhancements
|
@@ -178,8 +178,11 @@ class ActionView::Helpers::FormBuilder
|
|
178
178
|
|
179
179
|
[value, text, selected, disabled]
|
180
180
|
end
|
181
|
-
|
182
|
-
|
181
|
+
|
182
|
+
[:disabled, :selected].each do |option|
|
183
|
+
option_value = collection.map(&:pop).compact
|
184
|
+
options[option] = option_value if option_value.present?
|
185
|
+
end
|
183
186
|
value_method, text_method = :first, :last
|
184
187
|
end
|
185
188
|
|
@@ -266,7 +266,7 @@ module SimpleForm
|
|
266
266
|
# f.label :name, :id => "cool_label"
|
267
267
|
#
|
268
268
|
def label(attribute_name, *args)
|
269
|
-
return super if args.first.is_a?(String)
|
269
|
+
return super if args.first.is_a?(String) || block_given?
|
270
270
|
options = args.extract_options!
|
271
271
|
options[:label_html] = options.dup
|
272
272
|
options[:label] = options.delete(:label)
|
@@ -82,7 +82,12 @@ module SimpleForm
|
|
82
82
|
end
|
83
83
|
|
84
84
|
def components_list
|
85
|
-
options[:components]
|
85
|
+
if components = options[:components]
|
86
|
+
ActiveSupport::Deprecation.warn "The option :components of f.input is deprecated. Please turn off each component individually instead."
|
87
|
+
components
|
88
|
+
else
|
89
|
+
SimpleForm.components
|
90
|
+
end
|
86
91
|
end
|
87
92
|
|
88
93
|
def has_autofocus?
|
data/lib/simple_form/version.rb
CHANGED
data/test/form_builder_test.rb
CHANGED
@@ -39,9 +39,9 @@ class FormBuilderTest < ActionView::TestCase
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
def with_label_for(object, *args)
|
42
|
+
def with_label_for(object, *args, &block)
|
43
43
|
with_concat_form_for(object) do |f|
|
44
|
-
f.label(*args)
|
44
|
+
f.label(*args, &block)
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -453,50 +453,60 @@ class FormBuilderTest < ActionView::TestCase
|
|
453
453
|
|
454
454
|
# ONLY THE INPUT TAG
|
455
455
|
test "builder input_field should only render the input tag, nothing else" do
|
456
|
-
|
457
|
-
f
|
456
|
+
ActiveSupport::Deprecation.silence do
|
457
|
+
with_concat_form_for(@user) do |f|
|
458
|
+
f.input_field :name
|
459
|
+
end
|
460
|
+
assert_select 'form > input.required.string'
|
461
|
+
assert_no_select 'div.string'
|
462
|
+
assert_no_select 'label'
|
463
|
+
assert_no_select '.hint'
|
458
464
|
end
|
459
|
-
assert_select 'form > input.required.string'
|
460
|
-
assert_no_select 'div.string'
|
461
|
-
assert_no_select 'label'
|
462
|
-
assert_no_select '.hint'
|
463
465
|
end
|
464
466
|
|
465
467
|
test 'builder input_field should allow overriding default input type' do
|
466
|
-
|
467
|
-
|
468
|
-
|
468
|
+
ActiveSupport::Deprecation.silence do
|
469
|
+
with_concat_form_for(@user) do |f|
|
470
|
+
f.input_field :name, :as => :text
|
471
|
+
end
|
469
472
|
|
470
|
-
|
471
|
-
|
473
|
+
assert_no_select 'input#user_name'
|
474
|
+
assert_select 'textarea#user_name.text'
|
475
|
+
end
|
472
476
|
end
|
473
477
|
|
474
478
|
test 'builder input_field should allow passing options to input tag' do
|
475
|
-
|
476
|
-
|
477
|
-
|
479
|
+
ActiveSupport::Deprecation.silence do
|
480
|
+
with_concat_form_for(@user) do |f|
|
481
|
+
f.input_field :name, :id => 'name_input', :class => 'name'
|
482
|
+
end
|
478
483
|
|
479
|
-
|
484
|
+
assert_select 'input.string.name#name_input'
|
485
|
+
end
|
480
486
|
end
|
481
487
|
|
482
488
|
test 'builder input_field should generate an input tag with a clean HTML' do
|
483
|
-
|
484
|
-
|
485
|
-
|
489
|
+
ActiveSupport::Deprecation.silence do
|
490
|
+
with_concat_form_for(@user) do |f|
|
491
|
+
f.input_field :name, :as => :integer, :class => 'name'
|
492
|
+
end
|
486
493
|
|
487
|
-
|
488
|
-
|
494
|
+
assert_no_select 'input.integer[input_html]'
|
495
|
+
assert_no_select 'input.integer[as]'
|
496
|
+
end
|
489
497
|
end
|
490
498
|
|
491
499
|
test 'builder collection input_field should generate input tag with a clean HTML' do
|
492
|
-
|
493
|
-
|
494
|
-
|
500
|
+
ActiveSupport::Deprecation.silence do
|
501
|
+
with_concat_form_for(@user) do |f|
|
502
|
+
f.input_field :status, :collection => ['Open', 'Closed'], :class => 'status', :label_method => :to_s, :value_method => :to_s
|
503
|
+
end
|
495
504
|
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
505
|
+
assert_no_select 'select.status[input_html]'
|
506
|
+
assert_no_select 'select.status[collection]'
|
507
|
+
assert_no_select 'select.status[label_method]'
|
508
|
+
assert_no_select 'select.status[value_method]'
|
509
|
+
end
|
500
510
|
end
|
501
511
|
|
502
512
|
# WITHOUT OBJECT
|
@@ -627,6 +637,14 @@ class FormBuilderTest < ActionView::TestCase
|
|
627
637
|
assert_no_select 'label.string'
|
628
638
|
end
|
629
639
|
|
640
|
+
test 'builder should fallback to default label when block is given' do
|
641
|
+
with_label_for @user, :name do
|
642
|
+
'Nome do usuário'
|
643
|
+
end
|
644
|
+
assert_select 'label', 'Nome do usuário'
|
645
|
+
assert_no_select 'label.string'
|
646
|
+
end
|
647
|
+
|
630
648
|
test 'builder allows label order to be changed' do
|
631
649
|
swap SimpleForm, :label_text => lambda { |l, r| "#{l}:" } do
|
632
650
|
with_label_for @user, :age
|
data/test/inputs_test.rb
CHANGED
@@ -104,30 +104,38 @@ class InputTest < ActionView::TestCase
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
+
test 'components option is deprecated' do
|
108
|
+
assert_deprecated(/The option :components of f\.input is deprecated/) do
|
109
|
+
with_input_for @user, :name, :string, :components => [:input]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
107
113
|
test 'input should render components according to an optional :components option' do
|
108
|
-
|
109
|
-
|
114
|
+
ActiveSupport::Deprecation.silence do
|
115
|
+
with_input_for @user, :name, :string, :components => [:input, :label]
|
116
|
+
assert_select 'input + label'
|
110
117
|
|
111
|
-
|
112
|
-
|
118
|
+
with_input_for @user, :age, :integer, :components => [:input, :label]
|
119
|
+
assert_select 'input + label'
|
113
120
|
|
114
|
-
|
115
|
-
|
121
|
+
with_input_for @user, :active, :boolean, :components => [:label, :input]
|
122
|
+
assert_select 'label + input'
|
116
123
|
|
117
|
-
|
118
|
-
|
124
|
+
with_input_for @user, :description, :text, :components => [:input, :label]
|
125
|
+
assert_select 'textarea + label'
|
119
126
|
|
120
|
-
|
121
|
-
|
127
|
+
with_input_for @user, :password, :password, :components => [:input, :label]
|
128
|
+
assert_select 'input + label'
|
122
129
|
|
123
|
-
|
124
|
-
|
130
|
+
with_input_for @user, :name, :file, :components => [:input, :label]
|
131
|
+
assert_select 'input + label'
|
125
132
|
|
126
|
-
|
127
|
-
|
133
|
+
with_input_for @user, :country, :country, :components => [:input, :label]
|
134
|
+
assert_select 'select + label'
|
128
135
|
|
129
|
-
|
130
|
-
|
136
|
+
with_input_for @user, :time_zone, :time_zone, :components => [:input, :label]
|
137
|
+
assert_select 'select + label'
|
138
|
+
end
|
131
139
|
end
|
132
140
|
|
133
141
|
# StringInput
|
@@ -839,6 +847,15 @@ class InputTest < ActionView::TestCase
|
|
839
847
|
assert_no_select 'select option[value=Antonio][selected]'
|
840
848
|
end
|
841
849
|
|
850
|
+
test 'input should not override default selection through attribute value with label method as lambda for collection select' do
|
851
|
+
@user.name = "Carlos"
|
852
|
+
with_input_for @user, :name, :select, :collection => ["Carlos", "Antonio"],
|
853
|
+
:label_method => lambda { |x| x.upcase }
|
854
|
+
assert_select 'select option[value=Carlos][selected=selected]', 'CARLOS'
|
855
|
+
assert_select 'select option[value=Antonio]', 'ANTONIO'
|
856
|
+
assert_no_select 'select option[value=Antonio][selected]'
|
857
|
+
end
|
858
|
+
|
842
859
|
test 'input should allow overriding collection for radio types' do
|
843
860
|
with_input_for @user, :name, :radio, :collection => ['Jose', 'Carlos']
|
844
861
|
assert_select 'input[type=radio][value=Jose]'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_form
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 1.5.
|
9
|
+
- 1
|
10
|
+
version: 1.5.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Jos\xC3\xA9 Valim"
|
@@ -16,13 +16,13 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-09-
|
19
|
+
date: 2011-09-15 00:00:00 -03:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: activemodel
|
24
24
|
prerelease: false
|
25
|
-
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
27
27
|
requirements:
|
28
28
|
- - ~>
|
@@ -33,11 +33,11 @@ dependencies:
|
|
33
33
|
- 0
|
34
34
|
version: "3.0"
|
35
35
|
type: :runtime
|
36
|
-
|
36
|
+
requirement: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: actionpack
|
39
39
|
prerelease: false
|
40
|
-
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
@@ -48,7 +48,7 @@ dependencies:
|
|
48
48
|
- 0
|
49
49
|
version: "3.0"
|
50
50
|
type: :runtime
|
51
|
-
|
51
|
+
requirement: *id002
|
52
52
|
description: Forms made easy!
|
53
53
|
email: contact@plataformatec.com.br
|
54
54
|
executables: []
|