class MidasTouch::InputGroup
Attributes
filters[RW]
inputs[RW]
validations[RW]
Public Class Methods
new()
click to toggle source
# File lib/midas-touch/input_group.rb, line 10 def initialize @inputs = Array.new @filters = Array.new @validations = Array.new @failures = Array.new end
Public Instance Methods
[](name)
click to toggle source
# File lib/midas-touch/input_group.rb, line 22 def [](name) input = input(name) input.value if input end
each(&block)
click to toggle source
# File lib/midas-touch/input_group.rb, line 68 def each(&block) to_h.each(&block) end
error_on?(name)
click to toggle source
# File lib/midas-touch/input_group.rb, line 54 def error_on?(name) @failures.include?(input(name)) end
fields()
click to toggle source
# File lib/midas-touch/input_group.rb, line 34 def fields @inputs.map(&:name) end
Also aliased as: keys
filter!()
click to toggle source
# File lib/midas-touch/input_group.rb, line 27 def filter! @inputs.each do |input| filters.each { |filter| input.value = filter.call(input.value) } input.filter! end end
input(name)
click to toggle source
# File lib/midas-touch/input_group.rb, line 17 def input(name) name = name.to_sym @inputs.find { |input| input.name == name } end
invalidate_input(input_name)
click to toggle source
# File lib/midas-touch/input_group.rb, line 58 def invalidate_input(input_name) input = input(input_name) input.invalidate! @failures << input end
to_h()
click to toggle source
# File lib/midas-touch/input_group.rb, line 64 def to_h Hash[@inputs.map { |input| [input.name, input.value] }] end
valid?()
click to toggle source
# File lib/midas-touch/input_group.rb, line 39 def valid? @failures = Array.new @inputs.each do |input| validations.each do |rule| if !rule.call(input.value) @failures << input break end end @failures << input unless input.valid? end @failures.uniq! @failures.empty? end