bootstrap_form 4.0.0.alpha1 → 4.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -1
- data/Gemfile +1 -0
- data/README.md +32 -3
- data/RELEASING.md +25 -0
- data/Rakefile +6 -0
- data/lib/bootstrap_form/form_builder.rb +55 -67
- data/lib/bootstrap_form/helpers/bootstrap.rb +23 -7
- data/lib/bootstrap_form/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02eeb0d89ce2c25d6c38aba37ec7ea381e8110ea31ac771cde6a0f92dc36823e
|
4
|
+
data.tar.gz: 3b8448de1c213e51e9a5b34b4c79328318297f0ee30b724f73a65d79f871bb70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6abcc632e3ccda2b53d839b32cf8f1189a0eb8ccdff59864de232ebfee82df795ed77530bb7de10f12b2de0fecf75a318845030159b73a17e87aedc087150474
|
7
|
+
data.tar.gz: e111e67482e8ed21d54e441d82be365658aad122306d50571d0ae95e68cb7bb344af8906b4b35774a60cafef5757efe6566c642b795e20c3277ab4d23db9467d
|
data/CHANGELOG.md
CHANGED
@@ -12,6 +12,32 @@
|
|
12
12
|
|
13
13
|
* Your contribution here!
|
14
14
|
|
15
|
+
## [4.0.0][] (2018-10-27)
|
16
|
+
|
17
|
+
🚨 **This release adds support for Bootstrap v4 and drops support for Bootstrap v3.** 🚨
|
18
|
+
|
19
|
+
If your app uses Bootstrap v3, you should continue using bootstrap_form 2.7.x instead.
|
20
|
+
|
21
|
+
Bootstrap v3 and v4 are very different, and thus bootstrap_form now produces different markup in order to target v4. The changes are too many to list here; you can refer to Bootstrap's [Migrating to v4](https://getbootstrap.com/docs/4.0/migration/) page for a detailed explanation.
|
22
|
+
|
23
|
+
In addition to these necessary markup changes, the bootstrap_form API itself has the following important changes in this release.
|
24
|
+
|
25
|
+
### Breaking changes
|
26
|
+
|
27
|
+
* See [Migrating to v4](https://getbootstrap.com/docs/4.0/migration/).
|
28
|
+
|
29
|
+
### New features
|
30
|
+
|
31
|
+
* [#476] Give a way to pass classes to the `div.form-check` wrapper for check boxes and radio buttons - [@lcreid](https://github.com/lcreid).
|
32
|
+
* [461](https://github.com/bootstrap-ruby/bootstrap_form/pull/461): default form-inline class applied to parent content div on date select helpers. Can override with a :skip_inline option on the field helper - [@lancecarlson](https://github.com/lancecarlson).
|
33
|
+
* The `button`, `submit`, and `primary` helpers can now receive an additional option, `extra_class`. This option allows us to specify additional CSS classes to be added to the corresponding button/input, _while_ maintaining the original default ones. E.g., a primary button with an `extra_class` 'test-button' will have its final CSS classes declaration as 'btn btn-primary test-button'.
|
34
|
+
|
35
|
+
### Bugfixes
|
36
|
+
|
37
|
+
* [#347](https://github.com/bootstrap-ruby/bootstrap_form/issues/347) Fix `wrapper_class` and `wrapper` options for helpers that have `html_options`.
|
38
|
+
* [#472](https://github.com/bootstrap-ruby/bootstrap_form/pull/472) Use `id` option value as `for` attribute of label for custom checkboxes and radio buttons.
|
39
|
+
* [#478](https://github.com/bootstrap-ruby/bootstrap_form/issues/478) Fix offset for form group without label when multiple label widths are specified.
|
40
|
+
|
15
41
|
|
16
42
|
## [4.0.0.alpha1][] (2018-06-16)
|
17
43
|
|
@@ -49,6 +75,7 @@ In addition to these necessary markup changes, the bootstrap_form API itself has
|
|
49
75
|
* [#449](https://github.com/bootstrap-ruby/bootstrap_form/pull/449): Passing `.form-row` overrides default `.form-group.row` in horizontal layouts.
|
50
76
|
* Added an option to the `submit` (and `primary`, by transitivity) form tag helper, `render_as_button`, which when truthy makes the submit button render as a button instead of an input. This allows you to easily provide further styling to your form submission buttons, without requiring you to reinvent the wheel and use the `button` helper (and having to manually insert the typical Bootstrap classes). - [@jsaraiva](https://github.com/jsaraiva).
|
51
77
|
* Add `:error_message` option to `check_box` and `radio_button`, so they can output validation error messages if needed. [@lcreid](https://github.com/lcreid).
|
78
|
+
* Your contribution here!
|
52
79
|
|
53
80
|
### Bugfixes
|
54
81
|
|
@@ -216,7 +243,8 @@ Features:
|
|
216
243
|
- Added support for bootstrap_form_tag (@baldwindavid)
|
217
244
|
|
218
245
|
|
219
|
-
[Pending Release]: https://github.com/bootstrap-ruby/bootstrap_form/compare/v4.0.0
|
246
|
+
[Pending Release]: https://github.com/bootstrap-ruby/bootstrap_form/compare/v4.0.0...HEAD
|
247
|
+
[4.0.0]: https://github.com/bootstrap-ruby/bootstrap_form/compare/v4.0.0.alpha1...v4.0.0
|
220
248
|
[4.0.0.alpha1]: https://github.com/bootstrap-ruby/bootstrap_form/compare/v2.7.0...v4.0.0.alpha1
|
221
249
|
[2.7.0]: https://github.com/bootstrap-ruby/bootstrap_form/compare/v2.6.0...v2.7.0
|
222
250
|
[2.6.0]: https://github.com/bootstrap-ruby/bootstrap_form/compare/v2.5.3...v2.6.0
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -21,7 +21,7 @@ Bootstrap v4-style forms into your Rails application.
|
|
21
21
|
Add it to your Gemfile:
|
22
22
|
|
23
23
|
```ruby
|
24
|
-
gem "bootstrap_form", ">= 4.0.0
|
24
|
+
gem "bootstrap_form", ">= 4.0.0"
|
25
25
|
```
|
26
26
|
|
27
27
|
Then:
|
@@ -348,9 +348,15 @@ To display checkboxes and radios inline, pass the `inline: true` option:
|
|
348
348
|
<% end %>
|
349
349
|
```
|
350
350
|
|
351
|
+
Check boxes and radio buttons are wrapped in a `div.form-check`. You can add classes to this `div` with the `:wrapper_class` option:
|
352
|
+
|
353
|
+
```erb
|
354
|
+
<%= f.radio_button :skill_level, 0, label: "Novice", inline: true, wrapper_class: "w-auto" %>
|
355
|
+
```
|
356
|
+
|
351
357
|
#### Collections
|
352
358
|
|
353
|
-
`bootstrap_form` also provides helpers that automatically
|
359
|
+
`bootstrap_form` also provides helpers that automatically create the
|
354
360
|
`form_group` and the `radio_button`s or `check_box`es for you:
|
355
361
|
|
356
362
|
```erb
|
@@ -401,7 +407,7 @@ this defining these selects as `inline-block` and a width of `auto`.
|
|
401
407
|
|
402
408
|
### Submit Buttons
|
403
409
|
|
404
|
-
The `btn btn-secondary`
|
410
|
+
The `btn btn-secondary` CSS classes are automatically added to your submit
|
405
411
|
buttons.
|
406
412
|
|
407
413
|
```erb
|
@@ -441,6 +447,29 @@ are equivalent, and each of them both be rendered as
|
|
441
447
|
<button name="button" type="submit" class="btn btn-primary">Save changes <span class="fa fa-save"></span></button>
|
442
448
|
```
|
443
449
|
|
450
|
+
If you wish to add additional CSS classes to your button, while keeping the
|
451
|
+
default ones, you can use the `extra_class` option. This is particularly useful
|
452
|
+
for adding extra details to buttons (without forcing you to repeat the
|
453
|
+
Bootstrap classes), or for element targeting via CSS classes.
|
454
|
+
Be aware, however, that using the `class` option will discard any extra classes
|
455
|
+
you add. As an example, the following button declarations
|
456
|
+
|
457
|
+
```erb
|
458
|
+
<%= f.primary "My Nice Button", extra_class: 'my-button' %>
|
459
|
+
|
460
|
+
<%= f.primary "My Button", class: 'my-button' %>
|
461
|
+
```
|
462
|
+
|
463
|
+
will be rendered as
|
464
|
+
|
465
|
+
```html
|
466
|
+
<input type="submit" value="My Nice Button" class="btn btn-primary my-button" />
|
467
|
+
|
468
|
+
<input type="submit" value="My Button" class="my-button" />
|
469
|
+
```
|
470
|
+
|
471
|
+
(some unimportant HTML attributes have been removed for simplicity)
|
472
|
+
|
444
473
|
### Accessing Rails Form Helpers
|
445
474
|
|
446
475
|
If you want to use the original Rails form helpers for a particular field,
|
data/RELEASING.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# Releasing
|
2
|
+
|
3
|
+
Follow these steps to release a new version of bootstrap_form to rubygems.org.
|
4
|
+
|
5
|
+
## Prerequisites
|
6
|
+
|
7
|
+
* You must have commit rights to the bootstrap_form repository.
|
8
|
+
* You must have push rights for the bootstrap_form gem on rubygems.org.
|
9
|
+
* You must be using Ruby >= 2.2.
|
10
|
+
* Your GitHub credentials must be available to Chandler via `~/.netrc` or an environment variable, [as explained here](https://github.com/mattbrictson/chandler#2-configure-credentials).
|
11
|
+
|
12
|
+
## How to release
|
13
|
+
|
14
|
+
1. Run `bundle install` to make sure that you have all the gems necessary for testing and releasing.
|
15
|
+
2. **Ensure the tests are passing by running `bundle exec rake`.**
|
16
|
+
3. Determine which would be the correct next version number according to [semver](http://semver.org/).
|
17
|
+
4. Update the version in `./lib/bootstrap_form/version.rb`.
|
18
|
+
5. Update the `CHANGELOG.md` (for an illustration of these steps, refer to the [4.0.0.alpha1 commit](https://github.com/bootstrap-ruby/bootstrap_form/commit/8aac3667931a16537ab68038ec4cebce186bd596#diff-4ac32a78649ca5bdd8e0ba38b7006a1e) as an example):
|
19
|
+
* Rename the Pending Release section to `[version][] (date)` with appropriate values `version` and `date`
|
20
|
+
* Remove the "Your contribution here!" bullets from the release notes
|
21
|
+
* Add a new Pending Release section at the top of the file with a template for contributors to fill in, including "Your contribution here!" bullets
|
22
|
+
* Add the appropriate GitHub diff links to the footer of the document
|
23
|
+
6. Update the installation instructions in `README.md` to use the new version.
|
24
|
+
7. Commit the CHANGELOG and version changes in a single commit; the message should be "Preparing vX.Y.Z" where `X.Y.Z` is the version being released.
|
25
|
+
8. Run `bundle exec rake release`; this will tag, push to GitHub, publish to rubygems.org, and upload the latest CHANGELOG entry to the [GitHub releases page](https://github.com/bootstrap-ruby/bootstrap_form/releases).
|
data/Rakefile
CHANGED
@@ -24,4 +24,10 @@ Rake::TestTask.new(:test) do |t|
|
|
24
24
|
t.verbose = false
|
25
25
|
end
|
26
26
|
|
27
|
+
# This automatically updates GitHub Releases whenever we `rake release` the gem
|
28
|
+
task "release:rubygem_push" do
|
29
|
+
require "chandler/tasks"
|
30
|
+
Rake.application.invoke_task("chandler:push")
|
31
|
+
end
|
32
|
+
|
27
33
|
task default: :test
|
@@ -53,7 +53,11 @@ module BootstrapForm
|
|
53
53
|
|
54
54
|
define_method(with_method_name) do |name, options = {}, html_options = {}|
|
55
55
|
form_group_builder(name, options, html_options) do
|
56
|
-
|
56
|
+
html_class = control_specific_class(method_name)
|
57
|
+
if @layout == :horizontal && !options[:skip_inline].present?
|
58
|
+
html_class = "#{html_class} form-inline"
|
59
|
+
end
|
60
|
+
content_tag(:div, class: html_class) do
|
57
61
|
input_with_error(name) do
|
58
62
|
send(without_method_name, name, options, html_options)
|
59
63
|
end
|
@@ -126,14 +130,24 @@ module BootstrapForm
|
|
126
130
|
|
127
131
|
def check_box_with_bootstrap(name, options = {}, checked_value = "1", unchecked_value = "0", &block)
|
128
132
|
options = options.symbolize_keys!
|
129
|
-
check_box_options = options.except(:label, :label_class, :error_message, :help, :inline, :custom, :hide_label, :skip_label)
|
133
|
+
check_box_options = options.except(:label, :label_class, :error_message, :help, :inline, :custom, :hide_label, :skip_label, :wrapper_class)
|
130
134
|
check_box_classes = [check_box_options[:class]]
|
131
135
|
check_box_classes << "position-static" if options[:skip_label] || options[:hide_label]
|
132
136
|
check_box_classes << "is-invalid" if has_error?(name)
|
137
|
+
|
138
|
+
label_classes = [options[:label_class]]
|
139
|
+
label_classes << hide_class if options[:hide_label]
|
140
|
+
|
133
141
|
if options[:custom]
|
134
142
|
check_box_options[:class] = (["custom-control-input"] + check_box_classes).compact.join(' ')
|
143
|
+
wrapper_class = ["custom-control", "custom-checkbox"]
|
144
|
+
wrapper_class.append("custom-control-inline") if layout_inline?(options[:inline])
|
145
|
+
label_class = label_classes.prepend("custom-control-label").compact.join(" ")
|
135
146
|
else
|
136
147
|
check_box_options[:class] = (["form-check-input"] + check_box_classes).compact.join(' ')
|
148
|
+
wrapper_class = ["form-check"]
|
149
|
+
wrapper_class.append("form-check-inline") if layout_inline?(options[:inline])
|
150
|
+
label_class = label_classes.prepend("form-check-label").compact.join(" ")
|
137
151
|
end
|
138
152
|
|
139
153
|
checkbox_html = check_box_without_bootstrap(name, check_box_options, checked_value, unchecked_value)
|
@@ -149,39 +163,19 @@ module BootstrapForm
|
|
149
163
|
"#{name}_#{checked_value.to_s.gsub(/\s/, "_").gsub(/[^-[[:word:]]]/, "").mb_chars.downcase.to_s}"
|
150
164
|
end
|
151
165
|
|
152
|
-
|
153
|
-
|
166
|
+
label_options = { class: label_class }
|
167
|
+
label_options[:for] = options[:id] if options[:id].present?
|
154
168
|
|
155
|
-
if options[:
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
else
|
163
|
-
# TODO: Notice we don't seem to pass the ID into the custom control.
|
164
|
-
checkbox_html.concat(label(label_name, label_description, class: label_class))
|
165
|
-
end
|
166
|
-
html.concat(generate_error(name)) if options[:error_message]
|
167
|
-
html
|
168
|
-
end
|
169
|
-
else
|
170
|
-
wrapper_class = "form-check"
|
171
|
-
wrapper_class += " form-check-inline" if layout_inline?(options[:inline])
|
172
|
-
label_class = label_classes.prepend("form-check-label").compact.join(" ")
|
173
|
-
content_tag(:div, class: wrapper_class) do
|
174
|
-
html = if options[:skip_label]
|
175
|
-
checkbox_html
|
176
|
-
else
|
177
|
-
checkbox_html
|
178
|
-
.concat(label(label_name,
|
179
|
-
label_description,
|
180
|
-
{ class: label_class }.merge(options[:id].present? ? { for: options[:id] } : {})))
|
181
|
-
end
|
182
|
-
html.concat(generate_error(name)) if options[:error_message]
|
183
|
-
html
|
169
|
+
wrapper_class.append(options[:wrapper_class]) if options[:wrapper_class]
|
170
|
+
|
171
|
+
content_tag(:div, class: wrapper_class.compact.join(" ")) do
|
172
|
+
html = if options[:skip_label]
|
173
|
+
checkbox_html
|
174
|
+
else
|
175
|
+
checkbox_html.concat(label(label_name, label_description, label_options))
|
184
176
|
end
|
177
|
+
html.concat(generate_error(name)) if options[:error_message]
|
178
|
+
html
|
185
179
|
end
|
186
180
|
end
|
187
181
|
|
@@ -189,49 +183,41 @@ module BootstrapForm
|
|
189
183
|
|
190
184
|
def radio_button_with_bootstrap(name, value, *args)
|
191
185
|
options = args.extract_options!.symbolize_keys!
|
192
|
-
radio_options = options.except(:label, :label_class, :error_message, :help, :inline, :custom, :hide_label, :skip_label)
|
186
|
+
radio_options = options.except(:label, :label_class, :error_message, :help, :inline, :custom, :hide_label, :skip_label, :wrapper_class)
|
193
187
|
radio_classes = [options[:class]]
|
194
188
|
radio_classes << "position-static" if options[:skip_label] || options[:hide_label]
|
195
189
|
radio_classes << "is-invalid" if has_error?(name)
|
196
|
-
if options[:custom]
|
197
|
-
radio_options[:class] = radio_classes.prepend("custom-control-input").compact.join(' ')
|
198
|
-
else
|
199
|
-
radio_options[:class] = radio_classes.prepend("form-check-input").compact.join(' ')
|
200
|
-
end
|
201
|
-
radio_html = radio_button_without_bootstrap(name, value, radio_options)
|
202
190
|
|
203
|
-
disabled_class = " disabled" if options[:disabled]
|
204
191
|
label_classes = [options[:label_class]]
|
205
192
|
label_classes << hide_class if options[:hide_label]
|
206
193
|
|
207
194
|
if options[:custom]
|
208
|
-
|
209
|
-
|
195
|
+
radio_options[:class] = radio_classes.prepend("custom-control-input").compact.join(' ')
|
196
|
+
wrapper_class = ["custom-control", "custom-radio"]
|
197
|
+
wrapper_class.append("custom-control-inline") if layout_inline?(options[:inline])
|
210
198
|
label_class = label_classes.prepend("custom-control-label").compact.join(" ")
|
211
|
-
content_tag(:div, class: div_class.compact.join(" ")) do
|
212
|
-
html = if options[:skip_label]
|
213
|
-
radio_html
|
214
|
-
else
|
215
|
-
# TODO: Notice we don't seem to pass the ID into the custom control.
|
216
|
-
radio_html.concat(label(name, options[:label], value: value, class: label_class))
|
217
|
-
end
|
218
|
-
html.concat(generate_error(name)) if options[:error_message]
|
219
|
-
html
|
220
|
-
end
|
221
199
|
else
|
222
|
-
|
223
|
-
wrapper_class
|
200
|
+
radio_options[:class] = radio_classes.prepend("form-check-input").compact.join(' ')
|
201
|
+
wrapper_class = ["form-check"]
|
202
|
+
wrapper_class.append("form-check-inline") if layout_inline?(options[:inline])
|
203
|
+
wrapper_class.append("disabled") if options[:disabled]
|
224
204
|
label_class = label_classes.prepend("form-check-label").compact.join(" ")
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
205
|
+
end
|
206
|
+
radio_html = radio_button_without_bootstrap(name, value, radio_options)
|
207
|
+
|
208
|
+
label_options = { value: value, class: label_class }
|
209
|
+
label_options[:for] = options[:id] if options[:id].present?
|
210
|
+
|
211
|
+
wrapper_class.append(options[:wrapper_class]) if options[:wrapper_class]
|
212
|
+
|
213
|
+
content_tag(:div, class: wrapper_class.compact.join(" ")) do
|
214
|
+
html = if options[:skip_label]
|
215
|
+
radio_html
|
216
|
+
else
|
217
|
+
radio_html.concat(label(name, options[:label], label_options))
|
234
218
|
end
|
219
|
+
html.concat(generate_error(name)) if options[:error_message]
|
220
|
+
html
|
235
221
|
end
|
236
222
|
end
|
237
223
|
|
@@ -340,7 +326,7 @@ module BootstrapForm
|
|
340
326
|
end
|
341
327
|
|
342
328
|
def offset_col(label_col)
|
343
|
-
label_col.
|
329
|
+
label_col.gsub(/\bcol-(\w+)-(\d)\b/, 'offset-\1-\2')
|
344
330
|
end
|
345
331
|
|
346
332
|
def default_control_col
|
@@ -392,6 +378,10 @@ module BootstrapForm
|
|
392
378
|
|
393
379
|
def form_group_builder(method, options, html_options = nil)
|
394
380
|
options.symbolize_keys!
|
381
|
+
|
382
|
+
wrapper_class = options.delete(:wrapper_class)
|
383
|
+
wrapper_options = options.delete(:wrapper)
|
384
|
+
|
395
385
|
html_options.symbolize_keys! if html_options
|
396
386
|
|
397
387
|
# Add control_class; allow it to be overridden by :control_class option
|
@@ -402,8 +392,6 @@ module BootstrapForm
|
|
402
392
|
|
403
393
|
options = convert_form_tag_options(method, options) if acts_like_form_tag
|
404
394
|
|
405
|
-
wrapper_class = css_options.delete(:wrapper_class)
|
406
|
-
wrapper_options = css_options.delete(:wrapper)
|
407
395
|
help = options.delete(:help)
|
408
396
|
icon = options.delete(:icon)
|
409
397
|
label_col = options.delete(:label_col)
|
@@ -1,18 +1,19 @@
|
|
1
1
|
module BootstrapForm
|
2
2
|
module Helpers
|
3
3
|
module Bootstrap
|
4
|
+
|
4
5
|
def button(value = nil, options = {}, &block)
|
5
|
-
|
6
|
+
setup_css_class 'btn btn-secondary', options
|
6
7
|
super
|
7
8
|
end
|
8
9
|
|
9
10
|
def submit(name = nil, options = {})
|
10
|
-
|
11
|
+
setup_css_class 'btn btn-secondary', options
|
11
12
|
super
|
12
13
|
end
|
13
14
|
|
14
15
|
def primary(name = nil, options = {}, &block)
|
15
|
-
|
16
|
+
setup_css_class 'btn btn-primary', options
|
16
17
|
|
17
18
|
if options[:render_as_button] || block_given?
|
18
19
|
options.except! :render_as_button
|
@@ -34,9 +35,11 @@ module BootstrapForm
|
|
34
35
|
end
|
35
36
|
|
36
37
|
def error_summary
|
37
|
-
|
38
|
-
|
39
|
-
|
38
|
+
if object.errors.any?
|
39
|
+
content_tag :ul, class: 'rails-bootstrap-forms-error-summary' do
|
40
|
+
object.errors.full_messages.each do |error|
|
41
|
+
concat content_tag(:li, error)
|
42
|
+
end
|
40
43
|
end
|
41
44
|
end
|
42
45
|
end
|
@@ -64,7 +67,7 @@ module BootstrapForm
|
|
64
67
|
control_class: [options[:control_class], static_class].compact.join(" ")
|
65
68
|
})
|
66
69
|
|
67
|
-
static_options[:value] = object.send(name)
|
70
|
+
static_options[:value] = object.send(name) unless static_options.has_key?(:value)
|
68
71
|
|
69
72
|
text_field_with_bootstrap(name, static_options)
|
70
73
|
end
|
@@ -102,6 +105,19 @@ module BootstrapForm
|
|
102
105
|
def static_class
|
103
106
|
"form-control-plaintext"
|
104
107
|
end
|
108
|
+
|
109
|
+
|
110
|
+
private
|
111
|
+
|
112
|
+
def setup_css_class(the_class, options = {})
|
113
|
+
unless options.has_key? :class
|
114
|
+
if extra_class = options.delete(:extra_class)
|
115
|
+
the_class = "#{the_class} #{extra_class}"
|
116
|
+
end
|
117
|
+
options[:class] = the_class
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
105
121
|
end
|
106
122
|
end
|
107
123
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap_form
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Potenza
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-10-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- Gemfile
|
43
43
|
- LICENSE.txt
|
44
44
|
- README.md
|
45
|
+
- RELEASING.md
|
45
46
|
- Rakefile
|
46
47
|
- UPGRADE-4.0.md
|
47
48
|
- app/assets/stylesheets/rails_bootstrap_forms.css
|
@@ -109,12 +110,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
109
110
|
version: 2.2.2
|
110
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
112
|
requirements:
|
112
|
-
- - "
|
113
|
+
- - ">="
|
113
114
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
115
|
+
version: '0'
|
115
116
|
requirements: []
|
116
117
|
rubyforge_project:
|
117
|
-
rubygems_version: 2.7.
|
118
|
+
rubygems_version: 2.7.6
|
118
119
|
signing_key:
|
119
120
|
specification_version: 4
|
120
121
|
summary: Rails form builder that makes it easy to style forms using Bootstrap 4
|