class SimpleForm::Inputs::BooleanInput
Public Instance Methods
input(wrapper_options = nil)
click to toggle source
# File lib/simple_form/inputs/boolean_input.rb, line 5 def input(wrapper_options = nil) merged_input_options = merge_wrapper_options(input_html_options, wrapper_options) if nested_boolean_style? build_hidden_field_for_checkbox + template.label_tag(nil, class: boolean_label_class) { build_check_box_without_hidden_field(merged_input_options) + inline_label } else build_check_box(unchecked_value, merged_input_options) end end
label_input(wrapper_options = nil)
click to toggle source
# File lib/simple_form/inputs/boolean_input.rb, line 19 def label_input(wrapper_options = nil) if options[:label] == false || inline_label? input(wrapper_options) elsif nested_boolean_style? html_options = label_html_options.dup html_options[:class] ||= [] html_options[:class].push(boolean_label_class) if boolean_label_class merged_input_options = merge_wrapper_options(input_html_options, wrapper_options) build_hidden_field_for_checkbox + @builder.label(label_target, html_options) { build_check_box_without_hidden_field(merged_input_options) + label_text } else input(wrapper_options) + label(wrapper_options) end end
Private Instance Methods
boolean_label_class()
click to toggle source
# File lib/simple_form/inputs/boolean_input.rb, line 40 def boolean_label_class options[:boolean_label_class] || SimpleForm.boolean_label_class end
build_check_box(unchecked_value, options)
click to toggle source
Build a checkbox tag using default unchecked value. This allows us to reuse the method for nested boolean style, but with no unchecked value, which won't generate the hidden checkbox. This is the default functionality in Rails > 3.2.1, and is backported in SimpleForm AV helpers.
# File lib/simple_form/inputs/boolean_input.rb, line 48 def build_check_box(unchecked_value, options) @builder.check_box(attribute_name, options, checked_value, unchecked_value) end
checked_value()
click to toggle source
# File lib/simple_form/inputs/boolean_input.rb, line 94 def checked_value options.fetch(:checked_value, '1') end
inline_label()
click to toggle source
# File lib/simple_form/inputs/boolean_input.rb, line 74 def inline_label inline_option = options[:inline_label] if inline_option label = inline_option == true ? label_text : html_escape(inline_option) " #{label}".html_safe end end
inline_label?()
click to toggle source
# File lib/simple_form/inputs/boolean_input.rb, line 70 def inline_label? nested_boolean_style? && options[:inline_label] end
required_by_default?()
click to toggle source
Booleans are not required by default because in most of the cases it makes no sense marking them as required. The only exception is Terms of Use usually presented at most sites sign up screen.
# File lib/simple_form/inputs/boolean_input.rb, line 86 def required_by_default? false end
unchecked_value()
click to toggle source
# File lib/simple_form/inputs/boolean_input.rb, line 98 def unchecked_value options.fetch(:unchecked_value, '0') end