class Formulary::HtmlForm::Fields::CheckboxGroup
Public Class Methods
compatible_type()
click to toggle source
# File lib/formulary/html_form/fields/checkbox_group.rb, line 3 def self.compatible_type "checkbox" end
new(html_form, group_name, elements)
click to toggle source
Calls superclass method
# File lib/formulary/html_form/fields/checkbox_group.rb, line 11 def initialize(html_form, group_name, elements) super @values = [] end
supports_required?()
click to toggle source
# File lib/formulary/html_form/fields/checkbox_group.rb, line 7 def self.supports_required? true end
Public Instance Methods
set_value(value)
click to toggle source
# File lib/formulary/html_form/fields/checkbox_group.rb, line 16 def set_value(value) @values = [value].flatten end
Protected Instance Methods
presence_correct?()
click to toggle source
# File lib/formulary/html_form/fields/checkbox_group.rb, line 22 def presence_correct? @elements.each do |element| if element.attributes.include?("required") return false unless @values.include?(value_from_element(element)) end end return true end
value_from_element(element)
click to toggle source
Our exhaustive testing concludes that browsers submit “on” when the checkbox has no value.
# File lib/formulary/html_form/fields/checkbox_group.rb, line 39 def value_from_element(element) element.attributes["value"].try(:value) || "on" end
value_in_list?()
click to toggle source
# File lib/formulary/html_form/fields/checkbox_group.rb, line 31 def value_in_list? return true if @values.empty? allowed_values = @elements.map { |e| value_from_element(e) } (allowed_values & @values) == @values end