Class: SimpleForm::Inputs::Base
- Inherits:
-
Object
- Object
- SimpleForm::Inputs::Base
- Extended by:
- SimpleForm::I18nCache
- Includes:
- ActionView::Helpers::TranslationHelper, ERB::Util, Components::Errors, Components::HTML5, Components::Hints, Components::LabelInput, Components::Maxlength, Components::MinMax, Components::Minlength, Components::Pattern, Components::Placeholders, Components::Readonly, Helpers::Autofocus, Helpers::Disabled, Helpers::Readonly, Helpers::Required, Helpers::Validators
- Defined in:
- lib/simple_form/inputs/base.rb
Direct Known Subclasses
BlockInput, BooleanInput, CollectionInput, ColorInput, DateTimeInput, FileInput, HiddenInput, NumericInput, PasswordInput, RichTextAreaInput, StringInput, TextInput
Instance Attribute Summary collapse
-
#attribute_name ⇒ Object
readonly
Returns the value of attribute attribute_name.
-
#column ⇒ Object
readonly
Returns the value of attribute column.
-
#html_classes ⇒ Object
readonly
Returns the value of attribute html_classes.
-
#input_html_classes ⇒ Object
readonly
Returns the value of attribute input_html_classes.
-
#input_html_options ⇒ Object
readonly
Returns the value of attribute input_html_options.
-
#input_type ⇒ Object
readonly
Returns the value of attribute input_type.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#reflection ⇒ Object
readonly
Returns the value of attribute reflection.
Class Method Summary collapse
Instance Method Summary collapse
- #additional_classes ⇒ Object
-
#initialize(builder, attribute_name, column, input_type, options = {}) ⇒ Base
constructor
A new instance of Base.
- #input(wrapper_options = nil) ⇒ Object
- #input_class ⇒ Object
- #input_options ⇒ Object
Methods included from SimpleForm::I18nCache
get_i18n_cache, i18n_cache, reset_i18n_cache
Methods included from Components::Readonly
Methods included from Components::Placeholders
#placeholder, #placeholder_text
Methods included from Components::Pattern
Methods included from Components::MinMax
Methods included from Components::Minlength
Methods included from Components::Maxlength
Methods included from Components::LabelInput
Methods included from Components::HTML5
#has_required?, #html5, #html5?, #input_html_aria_required_option, #input_html_required_option
Methods included from Components::Hints
Methods included from Components::Errors
#error, #full_error, #has_errors?, #has_value?, #valid?
Methods included from Helpers::Validators
Constructor Details
#initialize(builder, attribute_name, column, input_type, options = {}) ⇒ Base
Returns a new instance of Base.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/simple_form/inputs/base.rb', line 57 def initialize(builder, attribute_name, column, input_type, = {}) super = .dup @builder = builder @attribute_name = attribute_name @column = column @input_type = input_type @reflection = .delete(:reflection) @options = .reverse_merge!(self.class.) @required = calculate_required # Notice that html_options_for receives a reference to input_html_classes. # This means that classes added dynamically to input_html_classes will # still propagate to input_html_options. @html_classes = SimpleForm.additional_classes_for(:input) { additional_classes } @input_html_classes = @html_classes.dup input_html_classes = self.input_html_classes if SimpleForm.input_class && input_html_classes.any? input_html_classes << SimpleForm.input_class end @input_html_options = (:input, input_html_classes).tap do |o| o[:readonly] = true if has_readonly? o[:disabled] = true if has_disabled? o[:autofocus] = true if has_autofocus? end end |
Instance Attribute Details
#attribute_name ⇒ Object (readonly)
Returns the value of attribute attribute_name
31 32 33 |
# File 'lib/simple_form/inputs/base.rb', line 31 def attribute_name @attribute_name end |
#column ⇒ Object (readonly)
Returns the value of attribute column
31 32 33 |
# File 'lib/simple_form/inputs/base.rb', line 31 def column @column end |
#html_classes ⇒ Object (readonly)
Returns the value of attribute html_classes
31 32 33 |
# File 'lib/simple_form/inputs/base.rb', line 31 def html_classes @html_classes end |
#input_html_classes ⇒ Object (readonly)
Returns the value of attribute input_html_classes
31 32 33 |
# File 'lib/simple_form/inputs/base.rb', line 31 def input_html_classes @input_html_classes end |
#input_html_options ⇒ Object (readonly)
Returns the value of attribute input_html_options
31 32 33 |
# File 'lib/simple_form/inputs/base.rb', line 31 def @input_html_options end |
#input_type ⇒ Object (readonly)
Returns the value of attribute input_type
31 32 33 |
# File 'lib/simple_form/inputs/base.rb', line 31 def input_type @input_type end |
#options ⇒ Object (readonly)
Returns the value of attribute options
31 32 33 |
# File 'lib/simple_form/inputs/base.rb', line 31 def @options end |
#reflection ⇒ Object (readonly)
Returns the value of attribute reflection
31 32 33 |
# File 'lib/simple_form/inputs/base.rb', line 31 def reflection @reflection end |
Class Method Details
.disable(*keys) ⇒ Object
45 46 47 48 49 |
# File 'lib/simple_form/inputs/base.rb', line 45 def self.disable(*keys) = self..dup keys.each { |key| [key] = false } self. = end |
.enable(*keys) ⇒ Object
39 40 41 42 43 |
# File 'lib/simple_form/inputs/base.rb', line 39 def self.enable(*keys) = self..dup keys.each { |key| .delete(key) } self. = end |
Instance Method Details
#additional_classes ⇒ Object
97 98 99 |
# File 'lib/simple_form/inputs/base.rb', line 97 def additional_classes @additional_classes ||= [input_type, required_class, readonly_class, disabled_class].compact end |
#input(wrapper_options = nil) ⇒ Object
89 90 91 |
# File 'lib/simple_form/inputs/base.rb', line 89 def input( = nil) raise NotImplementedError end |
#input_class ⇒ Object
101 102 103 |
# File 'lib/simple_form/inputs/base.rb', line 101 def input_class "#{lookup_model_names.join('_')}_#{reflection_or_attribute_name}" end |
#input_options ⇒ Object
93 94 95 |
# File 'lib/simple_form/inputs/base.rb', line 93 def end |