simple_form 1.5.1 → 1.5.2
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.
Potentially problematic release.
This version of simple_form might be problematic. Click here for more details.
- data/CHANGELOG.rdoc +5 -0
- data/lib/simple_form/form_builder.rb +5 -2
- data/lib/simple_form/version.rb +1 -1
- data/test/custom_components.rb +7 -0
- data/test/form_builder_test.rb +60 -37
- metadata +10 -8
data/CHANGELOG.rdoc
CHANGED
@@ -112,9 +112,12 @@ module SimpleForm
|
|
112
112
|
# name="user[name]" size="100" type="text" value="Carlos" />
|
113
113
|
#
|
114
114
|
def input_field(attribute_name, options={})
|
115
|
+
column = find_attribute_column(attribute_name)
|
116
|
+
input_type = default_input_type(attribute_name, column, options)
|
117
|
+
|
115
118
|
options[:input_html] = options.except(:as, :collection, :label_method, :value_method)
|
116
|
-
|
117
|
-
|
119
|
+
|
120
|
+
find_mapping(input_type).new(self, attribute_name, column, input_type, options).input
|
118
121
|
end
|
119
122
|
|
120
123
|
# Helper for dealing with association selects/radios, generating the
|
data/lib/simple_form/version.rb
CHANGED
data/test/form_builder_test.rb
CHANGED
@@ -453,60 +453,50 @@ 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
|
-
|
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'
|
456
|
+
with_concat_form_for(@user) do |f|
|
457
|
+
f.input_field :name
|
464
458
|
end
|
459
|
+
assert_select 'form > input.required.string'
|
460
|
+
assert_no_select 'div.string'
|
461
|
+
assert_no_select 'label'
|
462
|
+
assert_no_select '.hint'
|
465
463
|
end
|
466
464
|
|
467
465
|
test 'builder input_field should allow overriding default input type' do
|
468
|
-
|
469
|
-
|
470
|
-
f.input_field :name, :as => :text
|
471
|
-
end
|
472
|
-
|
473
|
-
assert_no_select 'input#user_name'
|
474
|
-
assert_select 'textarea#user_name.text'
|
466
|
+
with_concat_form_for(@user) do |f|
|
467
|
+
f.input_field :name, :as => :text
|
475
468
|
end
|
469
|
+
|
470
|
+
assert_no_select 'input#user_name'
|
471
|
+
assert_select 'textarea#user_name.text'
|
476
472
|
end
|
477
473
|
|
478
474
|
test 'builder input_field should allow passing options to input tag' do
|
479
|
-
|
480
|
-
|
481
|
-
f.input_field :name, :id => 'name_input', :class => 'name'
|
482
|
-
end
|
483
|
-
|
484
|
-
assert_select 'input.string.name#name_input'
|
475
|
+
with_concat_form_for(@user) do |f|
|
476
|
+
f.input_field :name, :id => 'name_input', :class => 'name'
|
485
477
|
end
|
478
|
+
|
479
|
+
assert_select 'input.string.name#name_input'
|
486
480
|
end
|
487
481
|
|
488
482
|
test 'builder input_field should generate an input tag with a clean HTML' do
|
489
|
-
|
490
|
-
|
491
|
-
f.input_field :name, :as => :integer, :class => 'name'
|
492
|
-
end
|
493
|
-
|
494
|
-
assert_no_select 'input.integer[input_html]'
|
495
|
-
assert_no_select 'input.integer[as]'
|
483
|
+
with_concat_form_for(@user) do |f|
|
484
|
+
f.input_field :name, :as => :integer, :class => 'name'
|
496
485
|
end
|
486
|
+
|
487
|
+
assert_no_select 'input.integer[input_html]'
|
488
|
+
assert_no_select 'input.integer[as]'
|
497
489
|
end
|
498
490
|
|
499
491
|
test 'builder collection input_field should generate input tag with a clean HTML' do
|
500
|
-
|
501
|
-
|
502
|
-
f.input_field :status, :collection => ['Open', 'Closed'], :class => 'status', :label_method => :to_s, :value_method => :to_s
|
503
|
-
end
|
504
|
-
|
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]'
|
492
|
+
with_concat_form_for(@user) do |f|
|
493
|
+
f.input_field :status, :collection => ['Open', 'Closed'], :class => 'status', :label_method => :to_s, :value_method => :to_s
|
509
494
|
end
|
495
|
+
|
496
|
+
assert_no_select 'select.status[input_html]'
|
497
|
+
assert_no_select 'select.status[collection]'
|
498
|
+
assert_no_select 'select.status[label_method]'
|
499
|
+
assert_no_select 'select.status[value_method]'
|
510
500
|
end
|
511
501
|
|
512
502
|
# WITHOUT OBJECT
|
@@ -904,4 +894,37 @@ class FormBuilderTest < ActionView::TestCase
|
|
904
894
|
assert_select 'form section input#user_age.numeric.integer'
|
905
895
|
end
|
906
896
|
end
|
897
|
+
|
898
|
+
# CUSTOM COMPONENTS
|
899
|
+
# Setup new components and remove them after the test.
|
900
|
+
def custom_component(components=[:label_input, :div])
|
901
|
+
swap SimpleForm, :components => components do
|
902
|
+
begin
|
903
|
+
load "custom_components.rb"
|
904
|
+
yield
|
905
|
+
ensure
|
906
|
+
Div.send(:undef_method, :div)
|
907
|
+
Object.send :remove_const, :Div
|
908
|
+
end
|
909
|
+
end
|
910
|
+
end
|
911
|
+
|
912
|
+
test 'builder should accept new components' do
|
913
|
+
custom_component do
|
914
|
+
with_form_for @user, :age
|
915
|
+
assert_select 'form input#user_age.numeric.integer'
|
916
|
+
assert_select 'form .custom_input'
|
917
|
+
end
|
918
|
+
end
|
919
|
+
|
920
|
+
test 'input field should render only the input' do
|
921
|
+
custom_component do
|
922
|
+
with_concat_form_for(@user) do |f|
|
923
|
+
f.input_field :age
|
924
|
+
end
|
925
|
+
|
926
|
+
assert_select 'form input#user_age.numeric.integer'
|
927
|
+
assert_no_select 'form .custom_input'
|
928
|
+
end
|
929
|
+
end
|
907
930
|
end
|
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: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 1.5.
|
9
|
+
- 2
|
10
|
+
version: 1.5.2
|
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-23 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
|
+
requirement: &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
|
+
version_requirements: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: actionpack
|
39
39
|
prerelease: false
|
40
|
-
|
40
|
+
requirement: &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
|
+
version_requirements: *id002
|
52
52
|
description: Forms made easy!
|
53
53
|
email: contact@plataformatec.com.br
|
54
54
|
executables: []
|
@@ -115,6 +115,7 @@ files:
|
|
115
115
|
- test/components/hint_test.rb
|
116
116
|
- test/components/label_test.rb
|
117
117
|
- test/components/wrapper_test.rb
|
118
|
+
- test/custom_components.rb
|
118
119
|
- test/discovery_inputs.rb
|
119
120
|
- test/error_notification_test.rb
|
120
121
|
- test/form_builder_test.rb
|
@@ -166,6 +167,7 @@ test_files:
|
|
166
167
|
- test/components/hint_test.rb
|
167
168
|
- test/components/label_test.rb
|
168
169
|
- test/components/wrapper_test.rb
|
170
|
+
- test/custom_components.rb
|
169
171
|
- test/discovery_inputs.rb
|
170
172
|
- test/error_notification_test.rb
|
171
173
|
- test/form_builder_test.rb
|