Class: SimpleForm::Inputs::Base
- Inherits:
-
Object
- Object
- SimpleForm::Inputs::Base
- Extended by:
- SimpleForm::I18nCache
- Includes:
- ERB::Util, Components::Errors, Components::HTML5, Components::Hints, Components::LabelInput, Components::Maxlength, Components::MinMax, 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, DateTimeInput, FileInput, HiddenInput, NumericInput, PasswordInput, 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 ⇒ 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::Maxlength
Methods included from Components::LabelInput
Methods included from Components::HTML5
#has_required?, #html5, #html5?
Methods included from Components::Hints
Methods included from Components::Errors
Methods included from Helpers::Validators
Constructor Details
#initialize(builder, attribute_name, column, input_type, options = {}) ⇒ Base
Returns a new instance of Base.
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/simple_form/inputs/base.rb', line 53 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_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.
27 28 29 |
# File 'lib/simple_form/inputs/base.rb', line 27 def attribute_name @attribute_name end |
#column ⇒ Object (readonly)
Returns the value of attribute column.
27 28 29 |
# File 'lib/simple_form/inputs/base.rb', line 27 def column @column end |
#html_classes ⇒ Object (readonly)
Returns the value of attribute html_classes.
27 28 29 |
# File 'lib/simple_form/inputs/base.rb', line 27 def html_classes @html_classes end |
#input_html_classes ⇒ Object (readonly)
Returns the value of attribute input_html_classes.
27 28 29 |
# File 'lib/simple_form/inputs/base.rb', line 27 def input_html_classes @input_html_classes end |
#input_html_options ⇒ Object (readonly)
Returns the value of attribute input_html_options.
27 28 29 |
# File 'lib/simple_form/inputs/base.rb', line 27 def @input_html_options end |
#input_type ⇒ Object (readonly)
Returns the value of attribute input_type.
27 28 29 |
# File 'lib/simple_form/inputs/base.rb', line 27 def input_type @input_type end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
27 28 29 |
# File 'lib/simple_form/inputs/base.rb', line 27 def @options end |
#reflection ⇒ Object (readonly)
Returns the value of attribute reflection.
27 28 29 |
# File 'lib/simple_form/inputs/base.rb', line 27 def reflection @reflection end |
Class Method Details
.disable(*keys) ⇒ Object
41 42 43 44 45 |
# File 'lib/simple_form/inputs/base.rb', line 41 def self.disable(*keys) = self..dup keys.each { |key| [key] = false } self. = end |
.enable(*keys) ⇒ Object
35 36 37 38 39 |
# File 'lib/simple_form/inputs/base.rb', line 35 def self.enable(*keys) = self..dup keys.each { |key| .delete(key) } self. = end |
Instance Method Details
#additional_classes ⇒ Object
86 87 88 |
# File 'lib/simple_form/inputs/base.rb', line 86 def additional_classes @additional_classes ||= [input_type, required_class, readonly_class, disabled_class].compact end |
#input ⇒ Object
78 79 80 |
# File 'lib/simple_form/inputs/base.rb', line 78 def input raise NotImplementedError end |
#input_class ⇒ Object
90 91 92 |
# File 'lib/simple_form/inputs/base.rb', line 90 def input_class "#{lookup_model_names.join("_")}_#{reflection_or_attribute_name}" end |
#input_options ⇒ Object
82 83 84 |
# File 'lib/simple_form/inputs/base.rb', line 82 def end |