Skip to content

Commit 0a246d7

Browse files
committed
Fix Rails edge compatibility
Close #941
1 parent 199ef08 commit 0a246d7

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

.rubocop.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Metrics/MethodLength:
4949
- 'test/**/*'
5050

5151
Metrics/ModuleLength:
52-
Max: 101
52+
Max: 109
5353
Exclude:
5454
- 'test/**/*'
5555

lib/client_side_validations/action_view/form_builder.rb

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ module ActionView
55
module Helpers
66
module FormBuilder
77
def self.prepended(base)
8-
(base.field_helpers - %i[label check_box radio_button fields_for fields hidden_field file_field]).each do |selector|
8+
selectors = base.field_helpers - %i[label check_box checkbox radio_button fields_for fields hidden_field file_field]
9+
10+
selectors.each do |selector|
911
base.class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
1012
# Cannot call super here, rewrite all
1113
def #{selector}(method, options = {}) # def text_field(method, options = {})
@@ -19,6 +21,10 @@ def #{selector}(method, options = {}) # def text_field(method, options = {
1921
end # end
2022
RUBY_EVAL
2123
end
24+
25+
base.class_eval do
26+
alias_method :text_area, :textarea if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:textarea)
27+
end
2228
end
2329

2430
def initialize(object_name, object, template, options)
@@ -47,6 +53,7 @@ def check_box(method, options = {}, checked_value = '1', unchecked_value = '0')
4753
options.delete(:validate)
4854
super
4955
end
56+
alias checkbox check_box if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:checkbox)
5057

5158
%i[collection_check_boxes collection_radio_buttons].each do |method_name|
5259
define_method method_name do |method, collection, value_method, text_method, options = {}, html_options = {}, &block|
@@ -56,6 +63,10 @@ def check_box(method, options = {}, checked_value = '1', unchecked_value = '0')
5663
end
5764
end
5865

66+
if ::ActionView::Helpers::FormBuilder.public_instance_methods.include?(:collection_checkboxes)
67+
alias collection_checkboxes collection_check_boxes
68+
end
69+
5970
def collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
6071
build_validation_options(method, html_options.merge(name: options[:name]))
6172
html_options.delete(:validate)

test/action_view/cases/test_form_for_helpers.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ def test_collection_check_boxes
456456
assert_dom_equal expected, output_buffer
457457
end
458458

459-
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:collection_checkboxes)
459+
if ::ActionView::Helpers::FormBuilder.public_instance_methods.include?(:collection_checkboxes)
460460
def test_collection_checkboxes
461461
form_for(@post, validate: true) do |f|
462462
concat f.collection_checkboxes(:cost, [], :id, :name)

test/action_view/cases/test_form_with_helpers.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ def test_form_with_collection_check_boxes
471471
assert_dom_equal expected, output_buffer
472472
end
473473

474-
if ::ActionView::Helpers::FormBuilder.field_helpers.include?(:collection_checkboxes)
474+
if ::ActionView::Helpers::FormBuilder.public_instance_methods.include?(:collection_checkboxes)
475475
def test_form_with_collection_checkboxes
476476
form_with(model: @post, validate: true) do |f|
477477
concat f.collection_checkboxes(:cost, [], :id, :name)

0 commit comments

Comments
 (0)