bootstrap_form 4.4.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +48 -0
  3. data/.gitignore +28 -3
  4. data/.rubocop.yml +19 -15
  5. data/CHANGELOG.md +82 -1
  6. data/CONTRIBUTING.md +73 -12
  7. data/Dangerfile +5 -7
  8. data/Dockerfile +21 -0
  9. data/Gemfile +8 -11
  10. data/README.md +829 -82
  11. data/RELEASING.md +5 -10
  12. data/UPGRADE-4.0.md +1 -1
  13. data/UPGRADE-5.0.md +25 -0
  14. data/bootstrap_form.gemspec +8 -5
  15. data/demo/.ruby-version +1 -0
  16. data/demo/Gemfile +80 -0
  17. data/demo/Gemfile.lock +261 -0
  18. data/demo/Procfile.dev +2 -0
  19. data/demo/app/assets/builds/.keep +0 -0
  20. data/demo/app/assets/builds/application.js.LICENSE.txt +9 -0
  21. data/demo/app/assets/config/manifest.js +2 -2
  22. data/demo/app/assets/stylesheets/actiontext.css +31 -0
  23. data/demo/app/assets/stylesheets/application.scss +1 -1
  24. data/demo/app/controllers/bootstrap_controller.rb +17 -2
  25. data/demo/app/controllers/users_controller.rb +9 -0
  26. data/demo/app/helpers/bootstrap_helper.rb +5 -5
  27. data/demo/app/javascript/application.js +3 -0
  28. data/demo/app/models/skill.rb +15 -0
  29. data/demo/app/models/user.rb +14 -0
  30. data/demo/app/views/active_storage/blobs/_blob.html.erb +1 -1
  31. data/demo/app/views/bootstrap/form.html.erb +13 -0
  32. data/demo/app/views/layouts/action_text/contents/_content.html.erb +3 -0
  33. data/demo/app/views/layouts/application.html.erb +28 -20
  34. data/demo/bin/dev +9 -0
  35. data/demo/config/environments/development.rb +3 -3
  36. data/demo/config/puma.rb +2 -2
  37. data/demo/config/routes.rb +1 -0
  38. data/demo/db/schema.rb +31 -16
  39. data/demo/doc/screenshots/bootstrap/index/00_horizontal_form.png +0 -0
  40. data/demo/doc/screenshots/bootstrap/index/01_with_validation_error.png +0 -0
  41. data/demo/doc/screenshots/bootstrap/index/02_inline_form.png +0 -0
  42. data/demo/doc/screenshots/bootstrap/index/03_simple_action_text_example.png +0 -0
  43. data/demo/doc/screenshots/bootstrap/index/04_floating_labels.png +0 -0
  44. data/demo/doc/screenshots/bootstrap/readme/00_example.png +0 -0
  45. data/demo/doc/screenshots/bootstrap/readme/01_example.png +0 -0
  46. data/demo/doc/screenshots/bootstrap/readme/02_example.png +0 -0
  47. data/demo/doc/screenshots/bootstrap/readme/03_example.png +0 -0
  48. data/demo/doc/screenshots/bootstrap/readme/04_example.png +0 -0
  49. data/demo/doc/screenshots/bootstrap/readme/05_example.png +0 -0
  50. data/demo/doc/screenshots/bootstrap/readme/06_example.png +0 -0
  51. data/demo/doc/screenshots/bootstrap/readme/07_example.png +0 -0
  52. data/demo/doc/screenshots/bootstrap/readme/08_example.png +0 -0
  53. data/demo/doc/screenshots/bootstrap/readme/09_example.png +0 -0
  54. data/demo/doc/screenshots/bootstrap/readme/10_example.png +0 -0
  55. data/demo/doc/screenshots/bootstrap/readme/11_example.png +0 -0
  56. data/demo/doc/screenshots/bootstrap/readme/12_example.png +0 -0
  57. data/demo/doc/screenshots/bootstrap/readme/13_example.png +0 -0
  58. data/demo/doc/screenshots/bootstrap/readme/14_example.png +0 -0
  59. data/demo/doc/screenshots/bootstrap/readme/15_example.png +0 -0
  60. data/demo/doc/screenshots/bootstrap/readme/16_example.png +0 -0
  61. data/demo/doc/screenshots/bootstrap/readme/17_example.png +0 -0
  62. data/demo/doc/screenshots/bootstrap/readme/18_example.png +0 -0
  63. data/demo/doc/screenshots/bootstrap/readme/19_example.png +0 -0
  64. data/demo/doc/screenshots/bootstrap/readme/20_example.png +0 -0
  65. data/demo/doc/screenshots/bootstrap/readme/21_example.png +0 -0
  66. data/demo/doc/screenshots/bootstrap/readme/22_example.png +0 -0
  67. data/demo/doc/screenshots/bootstrap/readme/23_example.png +0 -0
  68. data/demo/doc/screenshots/bootstrap/readme/24_example.png +0 -0
  69. data/demo/doc/screenshots/bootstrap/readme/25_example.png +0 -0
  70. data/demo/doc/screenshots/bootstrap/readme/26_example.png +0 -0
  71. data/demo/doc/screenshots/bootstrap/readme/27_example.png +0 -0
  72. data/demo/doc/screenshots/bootstrap/readme/28_example.png +0 -0
  73. data/demo/doc/screenshots/bootstrap/readme/29_example.png +0 -0
  74. data/demo/doc/screenshots/bootstrap/readme/30_example.png +0 -0
  75. data/demo/doc/screenshots/bootstrap/readme/31_example.png +0 -0
  76. data/demo/doc/screenshots/bootstrap/readme/32_example.png +0 -0
  77. data/demo/doc/screenshots/bootstrap/readme/33_example.png +0 -0
  78. data/demo/doc/screenshots/bootstrap/readme/34_example.png +0 -0
  79. data/demo/doc/screenshots/bootstrap/readme/35_example.png +0 -0
  80. data/demo/doc/screenshots/bootstrap/readme/36_example.png +0 -0
  81. data/demo/doc/screenshots/bootstrap/readme/37_example.png +0 -0
  82. data/demo/doc/screenshots/bootstrap/readme/38_example.png +0 -0
  83. data/demo/doc/screenshots/bootstrap/readme/39_example.png +0 -0
  84. data/demo/doc/screenshots/bootstrap/readme/40_example.png +0 -0
  85. data/demo/doc/screenshots/bootstrap/readme/41_example.png +0 -0
  86. data/demo/doc/screenshots/bootstrap/readme/42_example.png +0 -0
  87. data/demo/doc/screenshots/bootstrap/readme/43_example.png +0 -0
  88. data/demo/doc/screenshots/bootstrap/readme/44_example.png +0 -0
  89. data/demo/doc/screenshots/bootstrap/readme/45_example.png +0 -0
  90. data/demo/doc/screenshots/bootstrap/readme/46_example.png +0 -0
  91. data/demo/doc/screenshots/bootstrap/readme/47_example.png +0 -0
  92. data/demo/doc/screenshots/bootstrap/readme/48_example.png +0 -0
  93. data/demo/doc/screenshots/bootstrap/readme/49_example.png +0 -0
  94. data/demo/doc/screenshots/bootstrap/readme/50_example.png +0 -0
  95. data/demo/package.json +10 -6
  96. data/demo/test/application_system_test_case.rb +8 -0
  97. data/demo/test/controllers/bootstrap_controller_test.rb +8 -0
  98. data/demo/test/controllers/users_controller_test.rb +13 -0
  99. data/demo/test/fixtures/users.yml +2 -0
  100. data/demo/test/system/bootstrap_test.rb +84 -0
  101. data/demo/test/test_helper.rb +10 -0
  102. data/demo/webpack.config.js +20 -0
  103. data/demo/yarn.lock +4063 -3144
  104. data/docker-compose.yml +49 -0
  105. data/gemfiles/5.2.gemfile +2 -15
  106. data/gemfiles/6.0.gemfile +2 -17
  107. data/gemfiles/6.1.gemfile +4 -0
  108. data/gemfiles/7.0.gemfile +6 -0
  109. data/gemfiles/edge.gemfile +2 -17
  110. data/lib/bootstrap_form/action_view_extensions/form_helper.rb +1 -1
  111. data/lib/bootstrap_form/components/hints.rb +13 -4
  112. data/lib/bootstrap_form/components/labels.rb +2 -2
  113. data/lib/bootstrap_form/components/validation.rb +1 -1
  114. data/lib/bootstrap_form/configuration.rb +22 -0
  115. data/lib/bootstrap_form/form_builder.rb +10 -12
  116. data/lib/bootstrap_form/form_group.rb +26 -11
  117. data/lib/bootstrap_form/form_group_builder.rb +6 -8
  118. data/lib/bootstrap_form/helpers/bootstrap.rb +17 -12
  119. data/lib/bootstrap_form/inputs/base.rb +5 -5
  120. data/lib/bootstrap_form/inputs/check_box.rb +11 -23
  121. data/lib/bootstrap_form/inputs/collection_check_boxes.rb +5 -1
  122. data/lib/bootstrap_form/inputs/collection_select.rb +2 -1
  123. data/lib/bootstrap_form/inputs/file_field.rb +3 -15
  124. data/lib/bootstrap_form/inputs/grouped_collection_select.rb +2 -1
  125. data/lib/bootstrap_form/inputs/radio_button.rb +17 -30
  126. data/lib/bootstrap_form/inputs/select.rb +1 -0
  127. data/lib/bootstrap_form/inputs/time_zone_select.rb +1 -0
  128. data/lib/bootstrap_form/version.rb +1 -1
  129. data/lib/bootstrap_form.rb +17 -7
  130. metadata +94 -16
  131. data/.travis.yml +0 -42
  132. data/demo/config/initializers/assets.rb +0 -14
  133. data/gemfiles/5.0.gemfile +0 -18
  134. data/gemfiles/5.1.gemfile +0 -17
@@ -12,8 +12,9 @@ module BootstrapForm
12
12
  def grouped_collection_select_with_bootstrap(method, collection, group_method,
13
13
  group_label_method, option_key_method,
14
14
  option_value_method, options={}, html_options={})
15
+ html_options = html_options.reverse_merge(control_class: "form-select")
15
16
  form_group_builder(method, options, html_options) do
16
- input_with_error(method) do
17
+ prepend_and_append_input(method, options) do
17
18
  grouped_collection_select_without_bootstrap(method, collection, group_method,
18
19
  group_label_method, option_key_method,
19
20
  option_value_method, options, html_options)
@@ -9,13 +9,10 @@ module BootstrapForm
9
9
  included do
10
10
  def radio_button_with_bootstrap(name, value, *args)
11
11
  options = args.extract_options!.symbolize_keys!
12
- radio_button_options = options.except(:class, :label, :label_class, :error_message, :help,
13
- :inline, :custom, :hide_label, :skip_label, :wrapper_class)
14
-
15
- radio_button_options[:class] = radio_button_classes(name, options)
16
-
17
- content_tag(:div, class: radio_button_wrapper_class(options)) do
18
- html = radio_button_without_bootstrap(name, value, radio_button_options)
12
+ wrapper_attributes = options[:wrapper] || {}
13
+ wrapper_attributes[:class] = radio_button_wrapper_class(options)
14
+ tag.div(**wrapper_attributes) do
15
+ html = radio_button_without_bootstrap(name, value, radio_button_options(name, options))
19
16
  html.concat(radio_button_label(name, value, options)) unless options[:skip_label]
20
17
  html.concat(generate_error(name)) if options[:error_message]
21
18
  html
@@ -27,6 +24,13 @@ module BootstrapForm
27
24
 
28
25
  private
29
26
 
27
+ def radio_button_options(name, options)
28
+ radio_button_options = options.except(:class, :label, :label_class, :error_message, :help,
29
+ :inline, :hide_label, :skip_label, :wrapper, :wrapper_class)
30
+ radio_button_options[:class] = radio_button_classes(name, options)
31
+ radio_button_options
32
+ end
33
+
30
34
  def radio_button_label(name, value, options)
31
35
  label_options = { value: value, class: radio_button_label_class(options) }
32
36
  label_options[:for] = options[:id] if options[:id].present?
@@ -34,43 +38,26 @@ module BootstrapForm
34
38
  end
35
39
 
36
40
  def radio_button_classes(name, options)
37
- classes = [options[:class]]
38
- classes << (options[:custom] ? "custom-control-input" : "form-check-input")
41
+ classes = Array(options[:class]) << "form-check-input"
39
42
  classes << "is-invalid" if error?(name)
40
43
  classes << "position-static" if options[:skip_label] || options[:hide_label]
41
44
  classes.flatten.compact
42
45
  end
43
46
 
44
47
  def radio_button_label_class(options)
45
- classes = []
46
- classes << (options[:custom] ? "custom-control-label" : "form-check-label")
48
+ classes = ["form-check-label"]
47
49
  classes << options[:label_class]
48
50
  classes << hide_class if options[:hide_label]
49
51
  classes.flatten.compact
50
52
  end
51
53
 
52
54
  def radio_button_wrapper_class(options)
53
- classes = []
54
- classes << if options[:custom]
55
- custom_radio_button_wrapper_class(options)
56
- else
57
- standard_radio_button_wrapper_class(options)
58
- end
59
- classes << options[:wrapper_class] if options[:wrapper_class].present?
60
- classes.flatten.compact
61
- end
62
-
63
- def standard_radio_button_wrapper_class(options)
64
- classes = %w[form-check]
55
+ classes = ["form-check"]
65
56
  classes << "form-check-inline" if layout_inline?(options[:inline])
66
57
  classes << "disabled" if options[:disabled]
67
- classes
68
- end
69
-
70
- def custom_radio_button_wrapper_class(options)
71
- classes = %w[custom-control custom-radio]
72
- classes << "custom-control-inline" if layout_inline?(options[:inline])
73
- classes
58
+ classes << options.dig(:wrapper, :class).presence
59
+ classes << options[:wrapper_class].presence
60
+ classes.flatten.compact
74
61
  end
75
62
  end
76
63
  end
@@ -8,6 +8,7 @@ module BootstrapForm
8
8
 
9
9
  included do
10
10
  def select_with_bootstrap(method, choices=nil, options={}, html_options={}, &block)
11
+ html_options = html_options.reverse_merge(control_class: "form-select")
11
12
  form_group_builder(method, options, html_options) do
12
13
  prepend_and_append_input(method, options) do
13
14
  select_without_bootstrap(method, choices, options, html_options, &block)
@@ -8,6 +8,7 @@ module BootstrapForm
8
8
 
9
9
  included do
10
10
  def time_zone_select_with_bootstrap(method, priority_zones=nil, options={}, html_options={})
11
+ html_options = html_options.reverse_merge(control_class: "form-select")
11
12
  form_group_builder(method, options, html_options) do
12
13
  input_with_error(method) do
13
14
  time_zone_select_without_bootstrap(method, priority_zones, options, html_options)
@@ -1,3 +1,3 @@
1
1
  module BootstrapForm
2
- VERSION = "4.4.0".freeze
2
+ VERSION = "5.1.0".freeze
3
3
  end
@@ -2,8 +2,7 @@
2
2
  # name and not in the usual autoload-reachable way.
3
3
  # The following line is definitely need to make `bootstrap_form` work.
4
4
  if ::Rails::VERSION::STRING > "6"
5
- require Gem::Specification.find_by_name("actiontext").gem_dir + # rubocop:disable Rails/DynamicFindBy
6
- "/app/helpers/action_text/tag_helper"
5
+ require "#{Gem::Specification.find_by_name('actiontext').gem_dir}/app/helpers/action_text/tag_helper"
7
6
  end
8
7
  require "action_view"
9
8
  require "action_pack"
@@ -13,6 +12,7 @@ module BootstrapForm
13
12
  extend ActiveSupport::Autoload
14
13
 
15
14
  eager_autoload do
15
+ autoload :Configuration
16
16
  autoload :FormBuilder
17
17
  autoload :FormGroupBuilder
18
18
  autoload :FormGroup
@@ -21,11 +21,21 @@ module BootstrapForm
21
21
  autoload :Helpers
22
22
  end
23
23
 
24
- def self.eager_load!
25
- super
26
- BootstrapForm::Components.eager_load!
27
- BootstrapForm::Helpers.eager_load!
28
- BootstrapForm::Inputs.eager_load!
24
+ class << self
25
+ def eager_load!
26
+ super
27
+ BootstrapForm::Components.eager_load!
28
+ BootstrapForm::Helpers.eager_load!
29
+ BootstrapForm::Inputs.eager_load!
30
+ end
31
+
32
+ def config
33
+ @config ||= BootstrapForm::Configuration.new
34
+ end
35
+
36
+ def configure
37
+ yield config
38
+ end
29
39
  end
30
40
 
31
41
  mattr_accessor :field_error_proc
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.4.0
4
+ version: 5.1.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: 2020-03-08 00:00:00.000000000 Z
12
+ date: 2022-06-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -17,30 +17,30 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '5.0'
20
+ version: '5.2'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '5.0'
27
+ version: '5.2'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: activemodel
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '5.0'
34
+ version: '5.2'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: '5.0'
41
+ version: '5.2'
42
42
  description: bootstrap_form is a rails form builder that makes it super easy to create
43
- beautiful-looking forms using Bootstrap 4
43
+ beautiful-looking forms using Bootstrap 5
44
44
  email:
45
45
  - potenza@gmail.com
46
46
  - carlos.el.lopes@gmail.com
@@ -49,13 +49,14 @@ extensions: []
49
49
  extra_rdoc_files: []
50
50
  files:
51
51
  - ".editorconfig"
52
+ - ".github/workflows/ruby.yml"
52
53
  - ".gitignore"
53
54
  - ".rubocop.yml"
54
- - ".travis.yml"
55
55
  - CHANGELOG.md
56
56
  - CODE_OF_CONDUCT.md
57
57
  - CONTRIBUTING.md
58
58
  - Dangerfile
59
+ - Dockerfile
59
60
  - Gemfile
60
61
  - LICENSE.txt
61
62
  - OLD-README.md
@@ -63,29 +64,42 @@ files:
63
64
  - RELEASING.md
64
65
  - Rakefile
65
66
  - UPGRADE-4.0.md
67
+ - UPGRADE-5.0.md
66
68
  - app/assets/stylesheets/rails_bootstrap_forms.css
67
69
  - bootstrap_form.gemspec
68
70
  - demo/.postcssrc.yml
71
+ - demo/.ruby-version
72
+ - demo/Gemfile
73
+ - demo/Gemfile.lock
74
+ - demo/Procfile.dev
69
75
  - demo/README.md
70
76
  - demo/Rakefile
77
+ - demo/app/assets/builds/.keep
78
+ - demo/app/assets/builds/application.js.LICENSE.txt
71
79
  - demo/app/assets/config/manifest.js
80
+ - demo/app/assets/stylesheets/actiontext.css
72
81
  - demo/app/assets/stylesheets/actiontext.scss
73
82
  - demo/app/assets/stylesheets/application.scss
74
83
  - demo/app/controllers/application_controller.rb
75
84
  - demo/app/controllers/bootstrap_controller.rb
85
+ - demo/app/controllers/users_controller.rb
76
86
  - demo/app/helpers/bootstrap_helper.rb
87
+ - demo/app/javascript/application.js
77
88
  - demo/app/javascript/channels/consumer.js
78
89
  - demo/app/javascript/channels/index.js
79
90
  - demo/app/javascript/packs/application.js
80
91
  - demo/app/models/address.rb
81
92
  - demo/app/models/application_record.rb
82
93
  - demo/app/models/faux_user.rb
94
+ - demo/app/models/skill.rb
83
95
  - demo/app/models/super_user.rb
84
96
  - demo/app/models/user.rb
85
97
  - demo/app/views/active_storage/blobs/_blob.html.erb
86
98
  - demo/app/views/bootstrap/form.html.erb
99
+ - demo/app/views/layouts/action_text/contents/_content.html.erb
87
100
  - demo/app/views/layouts/application.html.erb
88
101
  - demo/bin/bundle
102
+ - demo/bin/dev
89
103
  - demo/bin/rails
90
104
  - demo/bin/rake
91
105
  - demo/bin/setup
@@ -102,7 +116,6 @@ files:
102
116
  - demo/config/environments/production.rb
103
117
  - demo/config/environments/test.rb
104
118
  - demo/config/initializers/application_controller_renderer.rb
105
- - demo/config/initializers/assets.rb
106
119
  - demo/config/initializers/backtrace_silencers.rb
107
120
  - demo/config/initializers/cookies_serializer.rb
108
121
  - demo/config/initializers/filter_parameter_logging.rb
@@ -120,15 +133,79 @@ files:
120
133
  - demo/config/webpack/test.js
121
134
  - demo/config/webpacker.yml
122
135
  - demo/db/schema.rb
136
+ - demo/doc/screenshots/bootstrap/index/00_horizontal_form.png
137
+ - demo/doc/screenshots/bootstrap/index/01_with_validation_error.png
138
+ - demo/doc/screenshots/bootstrap/index/02_inline_form.png
139
+ - demo/doc/screenshots/bootstrap/index/03_simple_action_text_example.png
140
+ - demo/doc/screenshots/bootstrap/index/04_floating_labels.png
141
+ - demo/doc/screenshots/bootstrap/readme/00_example.png
142
+ - demo/doc/screenshots/bootstrap/readme/01_example.png
143
+ - demo/doc/screenshots/bootstrap/readme/02_example.png
144
+ - demo/doc/screenshots/bootstrap/readme/03_example.png
145
+ - demo/doc/screenshots/bootstrap/readme/04_example.png
146
+ - demo/doc/screenshots/bootstrap/readme/05_example.png
147
+ - demo/doc/screenshots/bootstrap/readme/06_example.png
148
+ - demo/doc/screenshots/bootstrap/readme/07_example.png
149
+ - demo/doc/screenshots/bootstrap/readme/08_example.png
150
+ - demo/doc/screenshots/bootstrap/readme/09_example.png
151
+ - demo/doc/screenshots/bootstrap/readme/10_example.png
152
+ - demo/doc/screenshots/bootstrap/readme/11_example.png
153
+ - demo/doc/screenshots/bootstrap/readme/12_example.png
154
+ - demo/doc/screenshots/bootstrap/readme/13_example.png
155
+ - demo/doc/screenshots/bootstrap/readme/14_example.png
156
+ - demo/doc/screenshots/bootstrap/readme/15_example.png
157
+ - demo/doc/screenshots/bootstrap/readme/16_example.png
158
+ - demo/doc/screenshots/bootstrap/readme/17_example.png
159
+ - demo/doc/screenshots/bootstrap/readme/18_example.png
160
+ - demo/doc/screenshots/bootstrap/readme/19_example.png
161
+ - demo/doc/screenshots/bootstrap/readme/20_example.png
162
+ - demo/doc/screenshots/bootstrap/readme/21_example.png
163
+ - demo/doc/screenshots/bootstrap/readme/22_example.png
164
+ - demo/doc/screenshots/bootstrap/readme/23_example.png
165
+ - demo/doc/screenshots/bootstrap/readme/24_example.png
166
+ - demo/doc/screenshots/bootstrap/readme/25_example.png
167
+ - demo/doc/screenshots/bootstrap/readme/26_example.png
168
+ - demo/doc/screenshots/bootstrap/readme/27_example.png
169
+ - demo/doc/screenshots/bootstrap/readme/28_example.png
170
+ - demo/doc/screenshots/bootstrap/readme/29_example.png
171
+ - demo/doc/screenshots/bootstrap/readme/30_example.png
172
+ - demo/doc/screenshots/bootstrap/readme/31_example.png
173
+ - demo/doc/screenshots/bootstrap/readme/32_example.png
174
+ - demo/doc/screenshots/bootstrap/readme/33_example.png
175
+ - demo/doc/screenshots/bootstrap/readme/34_example.png
176
+ - demo/doc/screenshots/bootstrap/readme/35_example.png
177
+ - demo/doc/screenshots/bootstrap/readme/36_example.png
178
+ - demo/doc/screenshots/bootstrap/readme/37_example.png
179
+ - demo/doc/screenshots/bootstrap/readme/38_example.png
180
+ - demo/doc/screenshots/bootstrap/readme/39_example.png
181
+ - demo/doc/screenshots/bootstrap/readme/40_example.png
182
+ - demo/doc/screenshots/bootstrap/readme/41_example.png
183
+ - demo/doc/screenshots/bootstrap/readme/42_example.png
184
+ - demo/doc/screenshots/bootstrap/readme/43_example.png
185
+ - demo/doc/screenshots/bootstrap/readme/44_example.png
186
+ - demo/doc/screenshots/bootstrap/readme/45_example.png
187
+ - demo/doc/screenshots/bootstrap/readme/46_example.png
188
+ - demo/doc/screenshots/bootstrap/readme/47_example.png
189
+ - demo/doc/screenshots/bootstrap/readme/48_example.png
190
+ - demo/doc/screenshots/bootstrap/readme/49_example.png
191
+ - demo/doc/screenshots/bootstrap/readme/50_example.png
123
192
  - demo/log/.keep
124
193
  - demo/package.json
125
194
  - demo/public/favicon.ico
195
+ - demo/test/application_system_test_case.rb
196
+ - demo/test/controllers/bootstrap_controller_test.rb
197
+ - demo/test/controllers/users_controller_test.rb
126
198
  - demo/test/fixtures/action_text/rich_texts.yml
199
+ - demo/test/fixtures/users.yml
200
+ - demo/test/system/bootstrap_test.rb
201
+ - demo/test/test_helper.rb
202
+ - demo/webpack.config.js
127
203
  - demo/yarn.lock
128
- - gemfiles/5.0.gemfile
129
- - gemfiles/5.1.gemfile
204
+ - docker-compose.yml
130
205
  - gemfiles/5.2.gemfile
131
206
  - gemfiles/6.0.gemfile
207
+ - gemfiles/6.1.gemfile
208
+ - gemfiles/7.0.gemfile
132
209
  - gemfiles/edge.gemfile
133
210
  - lib/bootstrap_form.rb
134
211
  - lib/bootstrap_form/action_view_extensions/form_helper.rb
@@ -137,6 +214,7 @@ files:
137
214
  - lib/bootstrap_form/components/labels.rb
138
215
  - lib/bootstrap_form/components/layout.rb
139
216
  - lib/bootstrap_form/components/validation.rb
217
+ - lib/bootstrap_form/configuration.rb
140
218
  - lib/bootstrap_form/engine.rb
141
219
  - lib/bootstrap_form/form_builder.rb
142
220
  - lib/bootstrap_form/form_group.rb
@@ -180,7 +258,8 @@ files:
180
258
  homepage: https://github.com/bootstrap-ruby/bootstrap_form
181
259
  licenses:
182
260
  - MIT
183
- metadata: {}
261
+ metadata:
262
+ rubygems_mfa_required: 'true'
184
263
  post_install_message:
185
264
  rdoc_options: []
186
265
  require_paths:
@@ -189,16 +268,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
189
268
  requirements:
190
269
  - - ">="
191
270
  - !ruby/object:Gem::Version
192
- version: '2.3'
271
+ version: '2.7'
193
272
  required_rubygems_version: !ruby/object:Gem::Requirement
194
273
  requirements:
195
274
  - - ">="
196
275
  - !ruby/object:Gem::Version
197
276
  version: '0'
198
277
  requirements: []
199
- rubyforge_project:
200
- rubygems_version: 2.7.6
278
+ rubygems_version: 3.1.2
201
279
  signing_key:
202
280
  specification_version: 4
203
- summary: Rails form builder that makes it easy to style forms using Bootstrap 4
281
+ summary: Rails form builder that makes it easy to style forms using Bootstrap 5
204
282
  test_files: []
data/.travis.yml DELETED
@@ -1,42 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.7
4
- - 2.6.5
5
- - 2.5.7
6
- - 2.4.9
7
- gemfile:
8
- - gemfiles/5.0.gemfile
9
- - gemfiles/5.1.gemfile
10
- - gemfiles/5.2.gemfile
11
- - gemfiles/6.0.gemfile
12
- cache:
13
- bundler: true
14
- script:
15
- - bundle exec rake test
16
-
17
- matrix:
18
- exclude:
19
- - rvm: 2.4.9
20
- gemfile: gemfiles/6.0.gemfile
21
-
22
- include:
23
- # Bleeding edge Ruby
24
- - rvm: ruby-head
25
- gemfile: gemfiles/6.0.gemfile
26
-
27
- # Next version of Rails
28
- - rvm: 2.5.7
29
- gemfile: gemfiles/edge.gemfile
30
-
31
- # Running one job to execute DANGER bot and linting
32
- - rvm: 2.5.7
33
- gemfile: gemfiles/6.0.gemfile
34
- script:
35
- - gem install danger
36
- - danger
37
- - bundle exec rake rubocop
38
-
39
- allow_failures:
40
- - rvm: ruby-head
41
- - rvm: 2.5.7
42
- gemfile: gemfiles/edge.gemfile
@@ -1,14 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Version of your assets, change this if you want to expire all your assets.
4
- Rails.application.config.assets.version = "1.0"
5
-
6
- # Add additional assets to the asset load path.
7
- # Rails.application.config.assets.paths << Emoji.images_path
8
- # Add Yarn node_modules folder to the asset load path.
9
- Rails.application.config.assets.paths << Rails.root.join("node_modules")
10
-
11
- # Precompile additional assets.
12
- # application.js, application.css, and all non-JS/CSS in the app/assets
13
- # folder are already added.
14
- # Rails.application.config.assets.precompile += %w( admin.js admin.css )
data/gemfiles/5.0.gemfile DELETED
@@ -1,18 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- gemspec path: "../"
4
-
5
- gem "rails", "~> 5.0.0"
6
-
7
- group :development do
8
- gem "rubocop-rails", require: false
9
- end
10
-
11
- group :test do
12
- gem "diffy"
13
- gem "equivalent-xml"
14
- gem "minitest", "~> 5.10.3"
15
- gem "mocha"
16
- gem "sqlite3", "~> 1.3.6"
17
- gem "timecop", "~> 0.7.1"
18
- end
data/gemfiles/5.1.gemfile DELETED
@@ -1,17 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- gemspec path: "../"
4
-
5
- gem "rails", "~> 5.1.0"
6
-
7
- group :development do
8
- gem "rubocop-rails", require: false
9
- end
10
-
11
- group :test do
12
- gem "diffy"
13
- gem "equivalent-xml"
14
- gem "mocha"
15
- gem "sqlite3", "~> 1.4"
16
- gem "timecop", "~> 0.7.1"
17
- end