Module: ActiveForm::Mixins::OptionElementMethods
- Defined in:
- lib/active_form/mixins/option_element_methods.rb
Class Method Summary collapse
Instance Method Summary collapse
- #checked ⇒ Object
- #checked=(value) ⇒ Object
- #checked? ⇒ Boolean (also: #active?, #selected?)
- #checked_value ⇒ Object
- #checked_value=(value) ⇒ Object
- #options=(val) ⇒ Object (also: #option=)
- #perform_check! ⇒ Object
- #required=(value) ⇒ Object
- #valid_option?(value) ⇒ Boolean
Class Method Details
.included(base) ⇒ Object
3 4 5 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 3 def self.included(base) base.define_html_flags(:checked, false) end |
Instance Method Details
#checked ⇒ Object
35 36 37 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 35 def checked self.html_flags[:checked] end |
#checked=(value) ⇒ Object
39 40 41 42 43 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 39 def checked=(value) self.html_flags[:checked] = value.to_s.to_boolean self.element_value = (self.html_flags[:checked] ? self.checked_value : self.fallback_value) self.html_flags[:checked] end |
#checked? ⇒ Boolean Also known as: active?, selected?
29 30 31 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 29 def checked? perform_check! end |
#checked_value ⇒ Object
21 22 23 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 21 def checked_value @checked_value ||= nil end |
#checked_value=(value) ⇒ Object
17 18 19 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 17 def checked_value=(value) @checked_value = value end |
#options=(val) ⇒ Object Also known as: option=
7 8 9 10 11 12 13 14 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 7 def (val) if val.kind_of?(Array) self.fallback_value = val.last self.checked_value = val.first else self.checked_value = val end end |
#perform_check! ⇒ Object
45 46 47 48 49 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 45 def perform_check! self.html_flags[:checked] = !self.blank? && self.element_value == self.checked_value self.element_value = (self.html_flags[:checked] ? self.checked_value : self.fallback_value) self.html_flags[:checked] end |
#required=(value) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 51 def required=(value) self.option_flags[:required] = value.to_s.to_boolean if self.option_flags[:required] req = proc { |v| v.element.errors.add(v., 'confirm') unless v.element.checked? } validates_with_proc :code => 'required', :proc => req else validators.delete_if { |v| v.code == 'required' } end end |
#valid_option?(value) ⇒ Boolean
25 26 27 |
# File 'lib/active_form/mixins/option_element_methods.rb', line 25 def valid_option?(value) [self.checked_value, self.fallback_value].include?(value) end |