simple_form 4.0.1 → 4.1.0
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +12 -0
- data/lib/generators/simple_form/templates/config/initializers/simple_form.rb +0 -3
- data/lib/simple_form/components/errors.rb +5 -1
- data/lib/simple_form/form_builder.rb +7 -7
- data/lib/simple_form/inputs.rb +1 -0
- data/lib/simple_form/inputs/base.rb +4 -1
- data/lib/simple_form/inputs/boolean_input.rb +1 -0
- data/lib/simple_form/inputs/color_input.rb +14 -0
- data/lib/simple_form/inputs/string_input.rb +1 -1
- data/lib/simple_form/version.rb +1 -1
- data/test/form_builder/error_test.rb +6 -0
- data/test/form_builder/general_test.rb +6 -0
- data/test/form_builder/input_field_test.rb +3 -9
- data/test/inputs/boolean_input_test.rb +8 -0
- data/test/inputs/color_input_test.rb +10 -0
- data/test/inputs/datetime_input_test.rb +2 -12
- data/test/inputs/disabled_test.rb +13 -0
- data/test/inputs/discovery_test.rb +21 -0
- data/test/inputs/priority_input_test.rb +2 -10
- data/test/inputs/string_input_test.rb +8 -15
- data/test/support/discovery_inputs.rb +7 -0
- data/test/support/misc_helpers.rb +6 -0
- data/test/support/models.rb +1 -4
- metadata +31 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1461390ccbd2b434d67a43a84ada68f255d08bc48a9e23d7734075c8f105b400
|
4
|
+
data.tar.gz: c81c4b918e6f9e467081e8b534273ef8807ef6e508da40077fe4c91b5b85a66f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71d69573ae8125232a436ea4c23115584497647de1a3b5fa996c9c95f78599b3a3e9ff07ce0812cd5370a1e2c0351dc8fdc43bbea30b7f35d6c68213c68a5f84
|
7
|
+
data.tar.gz: dacdc01de808196a155ad1219f913bafff072578ad0bb3c0a9602a9f0377d4359f03e54880dd77a3e27307a35754568064d9dd5dcec95abf8a93f5f0164149a8
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
### Enhancements
|
4
|
+
* Guess input type more carefully. [@sringling](https://github.com/sringling)
|
5
|
+
* Allow custom error on forms without model. [@victorperez](https://github.com/victorperez)
|
6
|
+
* Do not support Ruby < 2.3 anymore. [@gssbzn](https://github.com/gssbzn)
|
7
|
+
* Add color inout type. [@gssbzn](https://github.com/gssbzn)
|
8
|
+
|
9
|
+
### Bug fix
|
10
|
+
* Improve disabled option to input_field. [@betelgeuse](https://github.com/betelgeuse)
|
11
|
+
* Memoize `input_html_classes` in `SimpleForm::Inputs::Base`. [@RigoTheDev](https://github.com/RigoTheDev)
|
12
|
+
* Fix column type citext HTML5 input type bug. [@brucew](https://github.com/brucew)
|
13
|
+
* Use form attribute in the nested boolean hidden field when it is given. [@feliperenan](https://github.com/feliperenan)
|
14
|
+
|
3
15
|
## 4.0.1
|
4
16
|
|
5
17
|
### Bug fix
|
@@ -87,9 +87,6 @@ SimpleForm.setup do |config|
|
|
87
87
|
# CSS class to add for error notification helper.
|
88
88
|
config.error_notification_class = 'error_notification'
|
89
89
|
|
90
|
-
# ID to add for error notification helper.
|
91
|
-
# config.error_notification_id = nil
|
92
|
-
|
93
90
|
# Series of attempts to detect a default label method for collection.
|
94
91
|
# config.collection_label_methods = [ :to_label, :name, :title, :to_s ]
|
95
92
|
|
@@ -11,7 +11,7 @@ module SimpleForm
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def has_errors?
|
14
|
-
|
14
|
+
object_with_errors? || object.nil? && has_custom_error?
|
15
15
|
end
|
16
16
|
|
17
17
|
def has_value?
|
@@ -34,6 +34,10 @@ module SimpleForm
|
|
34
34
|
has_custom_error? ? options[:error] : full_errors.send(error_method)
|
35
35
|
end
|
36
36
|
|
37
|
+
def object_with_errors?
|
38
|
+
object && object.respond_to?(:errors) && errors.present?
|
39
|
+
end
|
40
|
+
|
37
41
|
def error_method
|
38
42
|
options[:error_method] || SimpleForm.error_method
|
39
43
|
end
|
@@ -165,7 +165,7 @@ module SimpleForm
|
|
165
165
|
components = (wrapper.components.map(&:namespace) & ATTRIBUTE_COMPONENTS)
|
166
166
|
|
167
167
|
options = options.dup
|
168
|
-
options[:input_html] = options.except(:as, :boolean_style, :collection, :label_method, :value_method, :prompt, *components)
|
168
|
+
options[:input_html] = options.except(:as, :boolean_style, :collection, :disabled, :label_method, :value_method, :prompt, *components)
|
169
169
|
options = @defaults.deep_dup.deep_merge(options) if @defaults
|
170
170
|
|
171
171
|
input = find_input(attribute_name, options)
|
@@ -552,12 +552,12 @@ module SimpleForm
|
|
552
552
|
:datetime
|
553
553
|
when :string, :citext, nil
|
554
554
|
case attribute_name.to_s
|
555
|
-
when /password/ then :password
|
556
|
-
when /time_zone/ then :time_zone
|
557
|
-
when /country/ then :country
|
558
|
-
when /email/ then :email
|
559
|
-
when /phone/ then :tel
|
560
|
-
when /url/ then :url
|
555
|
+
when /(?:\b|\W|_)password(?:\b|\W|_)/ then :password
|
556
|
+
when /(?:\b|\W|_)time_zone(?:\b|\W|_)/ then :time_zone
|
557
|
+
when /(?:\b|\W|_)country(?:\b|\W|_)/ then :country
|
558
|
+
when /(?:\b|\W|_)email(?:\b|\W|_)/ then :email
|
559
|
+
when /(?:\b|\W|_)phone(?:\b|\W|_)/ then :tel
|
560
|
+
when /(?:\b|\W|_)url(?:\b|\W|_)/ then :url
|
561
561
|
else
|
562
562
|
file_method?(attribute_name) ? :file : (input_type || :string)
|
563
563
|
end
|
data/lib/simple_form/inputs.rb
CHANGED
@@ -72,7 +72,10 @@ module SimpleForm
|
|
72
72
|
@html_classes = SimpleForm.additional_classes_for(:input) { additional_classes }
|
73
73
|
|
74
74
|
@input_html_classes = @html_classes.dup
|
75
|
-
|
75
|
+
|
76
|
+
input_html_classes = self.input_html_classes
|
77
|
+
|
78
|
+
if SimpleForm.input_class && input_html_classes.any?
|
76
79
|
input_html_classes << SimpleForm.input_class
|
77
80
|
end
|
78
81
|
|
@@ -63,6 +63,7 @@ module SimpleForm
|
|
63
63
|
return "" if !include_hidden? || !unchecked_value
|
64
64
|
options = { value: unchecked_value, id: nil, disabled: input_html_options[:disabled] }
|
65
65
|
options[:name] = input_html_options[:name] if input_html_options.key?(:name)
|
66
|
+
options[:form] = input_html_options[:form] if input_html_options.key?(:form)
|
66
67
|
|
67
68
|
@builder.hidden_field(attribute_name, options)
|
68
69
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module SimpleForm
|
3
|
+
module Inputs
|
4
|
+
class ColorInput < Base
|
5
|
+
def input(wrapper_options = nil)
|
6
|
+
input_html_options[:type] ||= "color" if html5?
|
7
|
+
|
8
|
+
merged_input_options = merge_wrapper_options(input_html_options, wrapper_options)
|
9
|
+
|
10
|
+
@builder.text_field(attribute_name, merged_input_options)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/simple_form/version.rb
CHANGED
@@ -224,6 +224,12 @@ class ErrorTest < ActionView::TestCase
|
|
224
224
|
assert_no_select 'span.error'
|
225
225
|
end
|
226
226
|
|
227
|
+
test 'input with custom error works when form does not use a model' do
|
228
|
+
with_form_for :user, :active, error: "Super User Active! cannot be blank"
|
229
|
+
|
230
|
+
assert_select 'span.error'
|
231
|
+
end
|
232
|
+
|
227
233
|
test 'input with custom error works when using full_error component' do
|
228
234
|
swap_wrapper :default, custom_wrapper_with_full_error do
|
229
235
|
error_text = "Super User Name! cannot be blank"
|
@@ -271,6 +271,12 @@ class FormBuilderTest < ActionView::TestCase
|
|
271
271
|
assert_select 'form select#user_age.select'
|
272
272
|
end
|
273
273
|
|
274
|
+
test 'builder does not generate url fields for columns that contain only the letters url' do
|
275
|
+
with_form_for @user, :hourly
|
276
|
+
assert_no_select 'form input#user_url.string.url'
|
277
|
+
assert_select 'form input#user_hourly.string'
|
278
|
+
end
|
279
|
+
|
274
280
|
test 'builder allows overriding default input type for text' do
|
275
281
|
with_form_for @user, :name, as: :text
|
276
282
|
assert_no_select 'form input#user_name'
|
@@ -3,12 +3,6 @@ require 'test_helper'
|
|
3
3
|
|
4
4
|
# Tests for f.input_field
|
5
5
|
class InputFieldTest < ActionView::TestCase
|
6
|
-
def with_input_field_for(object, *args)
|
7
|
-
with_concat_form_for(object) do |f|
|
8
|
-
f.input_field(*args)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
6
|
test "builder input_field only renders the input tag, nothing else" do
|
13
7
|
with_input_field_for @user, :name
|
14
8
|
|
@@ -85,13 +79,13 @@ class InputFieldTest < ActionView::TestCase
|
|
85
79
|
test 'builder input_field infers pattern from attributes' do
|
86
80
|
with_input_field_for @other_validating_user, :country, as: :string, pattern: true
|
87
81
|
|
88
|
-
assert_select '
|
82
|
+
assert_select "input:match('pattern', ?)", /\w+/
|
89
83
|
end
|
90
84
|
|
91
85
|
test 'builder input_field accepts custom pattern' do
|
92
86
|
with_input_field_for @other_validating_user, :country, as: :string, pattern: '\d+'
|
93
87
|
|
94
|
-
assert_select '
|
88
|
+
assert_select "input:match('pattern', ?)", /\\d+/
|
95
89
|
end
|
96
90
|
|
97
91
|
test 'builder input_field uses readonly component' do
|
@@ -138,7 +132,7 @@ class InputFieldTest < ActionView::TestCase
|
|
138
132
|
swap_wrapper :default, custom_wrapper_with_html5_components do
|
139
133
|
with_input_field_for @user, :name, pattern: '\w+'
|
140
134
|
|
141
|
-
assert_select '
|
135
|
+
assert_select "input:match('pattern', ?)", /\w+/
|
142
136
|
end
|
143
137
|
end
|
144
138
|
|
@@ -107,6 +107,14 @@ class BooleanInputTest < ActionView::TestCase
|
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
|
+
test 'input boolean with nested generates a disabled hidden field with the form attribute when it is given' do
|
111
|
+
swap SimpleForm, boolean_style: :nested do
|
112
|
+
with_input_for @user, :active, :boolean, input_html: { form: 'form_id' }
|
113
|
+
|
114
|
+
assert_select "input[type=hidden][form=form_id]+ label.boolean > input.boolean"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
110
118
|
test 'input accepts changing boolean style to nested through given options' do
|
111
119
|
with_input_for @user, :active, :boolean, boolean_style: :nested
|
112
120
|
assert_select 'label[for=user_active]', 'Active'
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class ColorInputTest < ActionView::TestCase
|
6
|
+
test 'input generates a color field' do
|
7
|
+
with_input_for @user, :favorite_color, :color
|
8
|
+
assert_select 'input[type=color].color#user_favorite_color'
|
9
|
+
end
|
10
|
+
end
|
@@ -6,12 +6,7 @@ require 'test_helper'
|
|
6
6
|
class DateTimeInputWithHtml5Test < ActionView::TestCase
|
7
7
|
test 'input generates a datetime input for datetime attributes if HTML5 compatibility is explicitly enbled' do
|
8
8
|
with_input_for @user, :created_at, :datetime, html5: true
|
9
|
-
|
10
|
-
if ActionPack::VERSION::STRING >= '5'
|
11
|
-
assert_select 'input[type="datetime-local"]'
|
12
|
-
elsif ActionPack::VERSION::STRING < '5'
|
13
|
-
assert_select 'input[type="datetime"]'
|
14
|
-
end
|
9
|
+
assert_select 'input[type="datetime-local"]'
|
15
10
|
end
|
16
11
|
|
17
12
|
test 'input generates a datetime select for datetime attributes' do
|
@@ -80,12 +75,7 @@ class DateTimeInputWithoutHtml5Test < ActionView::TestCase
|
|
80
75
|
test 'input generates a datetime input for datetime attributes if HTML5 compatibility is explicitly enabled' do
|
81
76
|
swap_wrapper do
|
82
77
|
with_input_for @user, :created_at, :datetime, html5: true
|
83
|
-
|
84
|
-
if ActionPack::VERSION::STRING >= '5'
|
85
|
-
assert_select 'input[type="datetime-local"]'
|
86
|
-
elsif ActionPack::VERSION::STRING < '5'
|
87
|
-
assert_select 'input[type="datetime"]'
|
88
|
-
end
|
78
|
+
assert_select 'input[type="datetime-local"]'
|
89
79
|
end
|
90
80
|
end
|
91
81
|
|
@@ -76,4 +76,17 @@ class DisabledTest < ActionView::TestCase
|
|
76
76
|
with_input_for @user, :created_at, :datetime
|
77
77
|
assert_no_select 'select.datetime.disabled[disabled]'
|
78
78
|
end
|
79
|
+
|
80
|
+
test 'input_field collection allows disabled select' do
|
81
|
+
with_input_field_for @user, :description, collection: ['foo', 'bar'], disabled: true
|
82
|
+
assert_select 'select[disabled]'
|
83
|
+
assert_no_select 'option[disabled]'
|
84
|
+
end
|
85
|
+
|
86
|
+
test 'input_field collection allows individual disabled options' do
|
87
|
+
with_input_field_for @user, :description, collection: ['foo', 'bar'], disabled: 'bar'
|
88
|
+
assert_no_select 'select[disabled]'
|
89
|
+
assert_no_select 'option[disabled][value=foo]'
|
90
|
+
assert_select 'option[disabled][value=bar]'
|
91
|
+
end
|
79
92
|
end
|
@@ -15,6 +15,7 @@ class DiscoveryTest < ActionView::TestCase
|
|
15
15
|
Object.send :remove_const, :CustomizedInput
|
16
16
|
Object.send :remove_const, :DeprecatedInput
|
17
17
|
Object.send :remove_const, :CollectionSelectInput
|
18
|
+
Object.send :remove_const, :FileInput
|
18
19
|
CustomInputs.send :remove_const, :CustomizedInput
|
19
20
|
CustomInputs.send :remove_const, :PasswordInput
|
20
21
|
CustomInputs.send :remove_const, :NumericInput
|
@@ -109,6 +110,26 @@ class DiscoveryTest < ActionView::TestCase
|
|
109
110
|
end
|
110
111
|
end
|
111
112
|
|
113
|
+
test 'does not duplicate the html classes giving a extra class' do
|
114
|
+
discovery do
|
115
|
+
swap SimpleForm, input_class: 'custom-default-input-class' do
|
116
|
+
with_form_for @user, :active, as: :select
|
117
|
+
assert_select 'form select#user_active.select' do
|
118
|
+
# Make sure class list contains 'chosen' only once.
|
119
|
+
assert_select ":match('class', ?)", /^(?!.*\bchosen\b.*\bchosen\b).*\bchosen\b.*$/
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
test 'new inputs can override the default input_html_classes' do
|
126
|
+
discovery do
|
127
|
+
with_form_for @user, :avatar, as: :file
|
128
|
+
assert_no_select 'form input[type=file]#user_avatar.file.file-upload'
|
129
|
+
assert_select 'form input[type=file]#user_avatar.file-upload'
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
112
133
|
test 'inputs method without wrapper_options are deprecated' do
|
113
134
|
discovery do
|
114
135
|
assert_deprecated do
|
@@ -6,22 +6,14 @@ class PriorityInputTest < ActionView::TestCase
|
|
6
6
|
test 'input generates a country select field' do
|
7
7
|
with_input_for @user, :country, :country
|
8
8
|
assert_select 'select#user_country'
|
9
|
-
|
10
|
-
assert_select 'select option[value=BR]', 'Brazil'
|
11
|
-
elsif ActionPack::VERSION::STRING < '5'
|
12
|
-
assert_select 'select option[value=Brazil]', 'Brazil'
|
13
|
-
end
|
9
|
+
assert_select 'select option[value=BR]', 'Brazil'
|
14
10
|
assert_no_select 'select option[value=""][disabled=disabled]'
|
15
11
|
end
|
16
12
|
|
17
13
|
test 'input generates a country select with SimpleForm default' do
|
18
14
|
swap SimpleForm, country_priority: [ 'Brazil' ] do
|
19
15
|
with_input_for @user, :country, :country
|
20
|
-
|
21
|
-
assert_select 'select option[value="---------------"][disabled=disabled]'
|
22
|
-
elsif ActionPack::VERSION::STRING < '5'
|
23
|
-
assert_select 'select option[value=""][disabled=disabled]'
|
24
|
-
end
|
16
|
+
assert_select 'select option[value="---------------"][disabled=disabled]'
|
25
17
|
end
|
26
18
|
end
|
27
19
|
|
@@ -8,6 +8,11 @@ class StringInputTest < ActionView::TestCase
|
|
8
8
|
assert_select "input#user_name[type=text][name='user[name]'][value='New in SimpleForm!']"
|
9
9
|
end
|
10
10
|
|
11
|
+
test 'input maps text field to citext attribute' do
|
12
|
+
with_input_for @user, :name, :citext
|
13
|
+
assert_select "input#user_name[type=text][name='user[name]'][value='New in SimpleForm!']"
|
14
|
+
end
|
15
|
+
|
11
16
|
test 'input generates a password field for password attributes' do
|
12
17
|
with_input_for @user, :password, :password
|
13
18
|
assert_select "input#user_password.password[type=password][name='user[password]']"
|
@@ -38,18 +43,6 @@ class StringInputTest < ActionView::TestCase
|
|
38
43
|
assert_select 'input.string[minlength="5"]'
|
39
44
|
end
|
40
45
|
|
41
|
-
if ActionPack::VERSION::STRING < '5'
|
42
|
-
test 'input does not get maxlength from validation when tokenizer present' do
|
43
|
-
with_input_for @validating_user, :action, :string
|
44
|
-
assert_no_select 'input.string[maxlength]'
|
45
|
-
end
|
46
|
-
|
47
|
-
test 'input does not get minlength from validation when tokenizer present' do
|
48
|
-
with_input_for @validating_user, :action, :string
|
49
|
-
assert_no_select 'input.string[minlength]'
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
46
|
test 'input gets maxlength from validation when :is option present' do
|
54
47
|
with_input_for @validating_user, :home_picture, :string
|
55
48
|
assert_select 'input.string[maxlength="12"]'
|
@@ -88,12 +81,12 @@ class StringInputTest < ActionView::TestCase
|
|
88
81
|
|
89
82
|
test 'input infers pattern from attributes' do
|
90
83
|
with_input_for @other_validating_user, :country, :string, pattern: true
|
91
|
-
assert_select '
|
84
|
+
assert_select "input:match('pattern', ?)", /\w+/
|
92
85
|
end
|
93
86
|
|
94
87
|
test 'input infers pattern from attributes using proc' do
|
95
88
|
with_input_for @other_validating_user, :name, :string, pattern: true
|
96
|
-
assert_select '
|
89
|
+
assert_select "input:match('pattern', ?)", /\w+/
|
97
90
|
end
|
98
91
|
|
99
92
|
test 'input does not infer pattern from attributes if root default is false' do
|
@@ -105,7 +98,7 @@ class StringInputTest < ActionView::TestCase
|
|
105
98
|
|
106
99
|
test 'input uses given pattern from attributes' do
|
107
100
|
with_input_for @other_validating_user, :country, :string, input_html: { pattern: "\\d+" }
|
108
|
-
assert_select '
|
101
|
+
assert_select "input:match('pattern', ?)", /\\d+/
|
109
102
|
end
|
110
103
|
|
111
104
|
test 'input does not use pattern if model has :without validation option' do
|
@@ -37,6 +37,13 @@ class CollectionSelectInput < SimpleForm::Inputs::CollectionSelectInput
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
class FileInput < SimpleForm::Inputs::FileInput
|
41
|
+
def input_html_classes
|
42
|
+
super.delete_if { |html_class| html_class == :file }
|
43
|
+
super.push('file-upload')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
40
47
|
module CustomInputs
|
41
48
|
class CustomizedInput < SimpleForm::Inputs::StringInput
|
42
49
|
def input_html_classes
|
@@ -255,6 +255,12 @@ module MiscHelpers
|
|
255
255
|
f.input(attribute_name, options.merge(as: type))
|
256
256
|
end
|
257
257
|
end
|
258
|
+
|
259
|
+
def with_input_field_for(object, *args)
|
260
|
+
with_concat_form_for(object) do |f|
|
261
|
+
f.input_field(*args)
|
262
|
+
end
|
263
|
+
end
|
258
264
|
end
|
259
265
|
|
260
266
|
class CustomFormBuilder < SimpleForm::FormBuilder
|
data/test/support/models.rb
CHANGED
@@ -91,7 +91,7 @@ class User
|
|
91
91
|
:post_count, :lock_version, :amount, :attempts, :action, :credit_card, :gender,
|
92
92
|
:extra_special_company_id, :pictures, :picture_ids, :special_pictures,
|
93
93
|
:special_picture_ids, :uuid, :friends, :friend_ids, :special_tags, :special_tag_ids,
|
94
|
-
:citext, :hstore, :json, :jsonb
|
94
|
+
:citext, :hstore, :json, :jsonb, :hourly, :favorite_color
|
95
95
|
|
96
96
|
def self.build(extra_attributes = {})
|
97
97
|
attributes = {
|
@@ -277,9 +277,6 @@ class ValidatingUser < User
|
|
277
277
|
only_integer: true
|
278
278
|
validates_length_of :name, maximum: 25, minimum: 5
|
279
279
|
validates_length_of :description, in: 15..50
|
280
|
-
if ActionPack::VERSION::STRING < '5'
|
281
|
-
validates_length_of :action, maximum: 10, tokenizer: ->(str) { str.scan(/\w+/) }
|
282
|
-
end
|
283
280
|
validates_length_of :home_picture, is: 12
|
284
281
|
|
285
282
|
def min_amount
|
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: 4.0
|
4
|
+
version: 4.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- José Valim
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-11-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activemodel
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/simple_form/inputs/collection_input.rb
|
92
92
|
- lib/simple_form/inputs/collection_radio_buttons_input.rb
|
93
93
|
- lib/simple_form/inputs/collection_select_input.rb
|
94
|
+
- lib/simple_form/inputs/color_input.rb
|
94
95
|
- lib/simple_form/inputs/date_time_input.rb
|
95
96
|
- lib/simple_form/inputs/file_input.rb
|
96
97
|
- lib/simple_form/inputs/grouped_collection_select_input.rb
|
@@ -129,6 +130,7 @@ files:
|
|
129
130
|
- test/inputs/collection_check_boxes_input_test.rb
|
130
131
|
- test/inputs/collection_radio_buttons_input_test.rb
|
131
132
|
- test/inputs/collection_select_input_test.rb
|
133
|
+
- test/inputs/color_input_test.rb
|
132
134
|
- test/inputs/datetime_input_test.rb
|
133
135
|
- test/inputs/disabled_test.rb
|
134
136
|
- test/inputs/discovery_test.rb
|
@@ -168,45 +170,46 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
170
|
version: '0'
|
169
171
|
requirements: []
|
170
172
|
rubyforge_project: simple_form
|
171
|
-
rubygems_version: 2.6
|
173
|
+
rubygems_version: 2.7.6
|
172
174
|
signing_key:
|
173
175
|
specification_version: 4
|
174
176
|
summary: Forms made easy!
|
175
177
|
test_files:
|
176
|
-
- test/action_view_extensions/builder_test.rb
|
177
|
-
- test/action_view_extensions/form_helper_test.rb
|
178
|
-
- test/components/custom_components_test.rb
|
179
178
|
- test/components/label_test.rb
|
180
|
-
- test/
|
181
|
-
- test/
|
182
|
-
- test/
|
179
|
+
- test/components/custom_components_test.rb
|
180
|
+
- test/support/discovery_inputs.rb
|
181
|
+
- test/support/misc_helpers.rb
|
182
|
+
- test/support/mock_controller.rb
|
183
|
+
- test/support/models.rb
|
184
|
+
- test/test_helper.rb
|
183
185
|
- test/form_builder/error_test.rb
|
184
|
-
- test/form_builder/general_test.rb
|
185
186
|
- test/form_builder/hint_test.rb
|
187
|
+
- test/form_builder/error_notification_test.rb
|
188
|
+
- test/form_builder/general_test.rb
|
189
|
+
- test/form_builder/button_test.rb
|
186
190
|
- test/form_builder/input_field_test.rb
|
187
191
|
- test/form_builder/label_test.rb
|
188
192
|
- test/form_builder/wrapper_test.rb
|
193
|
+
- test/form_builder/association_test.rb
|
189
194
|
- test/generators/simple_form_generator_test.rb
|
190
|
-
- test/
|
195
|
+
- test/action_view_extensions/builder_test.rb
|
196
|
+
- test/action_view_extensions/form_helper_test.rb
|
197
|
+
- test/simple_form_test.rb
|
198
|
+
- test/inputs/string_input_test.rb
|
199
|
+
- test/inputs/numeric_input_test.rb
|
200
|
+
- test/inputs/readonly_test.rb
|
201
|
+
- test/inputs/grouped_collection_select_input_test.rb
|
202
|
+
- test/inputs/text_input_test.rb
|
191
203
|
- test/inputs/collection_check_boxes_input_test.rb
|
192
|
-
- test/inputs/
|
193
|
-
- test/inputs/collection_select_input_test.rb
|
194
|
-
- test/inputs/datetime_input_test.rb
|
204
|
+
- test/inputs/boolean_input_test.rb
|
195
205
|
- test/inputs/disabled_test.rb
|
196
206
|
- test/inputs/discovery_test.rb
|
197
|
-
- test/inputs/
|
207
|
+
- test/inputs/collection_select_input_test.rb
|
198
208
|
- test/inputs/general_test.rb
|
199
|
-
- test/inputs/
|
200
|
-
- test/inputs/hidden_input_test.rb
|
201
|
-
- test/inputs/numeric_input_test.rb
|
202
|
-
- test/inputs/priority_input_test.rb
|
203
|
-
- test/inputs/readonly_test.rb
|
209
|
+
- test/inputs/color_input_test.rb
|
204
210
|
- test/inputs/required_test.rb
|
205
|
-
- test/inputs/
|
206
|
-
- test/inputs/
|
207
|
-
- test/
|
208
|
-
- test/
|
209
|
-
- test/
|
210
|
-
- test/support/mock_controller.rb
|
211
|
-
- test/support/models.rb
|
212
|
-
- test/test_helper.rb
|
211
|
+
- test/inputs/collection_radio_buttons_input_test.rb
|
212
|
+
- test/inputs/priority_input_test.rb
|
213
|
+
- test/inputs/hidden_input_test.rb
|
214
|
+
- test/inputs/file_input_test.rb
|
215
|
+
- test/inputs/datetime_input_test.rb
|