class Kameleon::DSL::Verify::SelectInput

Attributes

conditions[R]
value[R]

Public Class Methods

new(value, *params) click to toggle source
# File lib/kameleon/dsl/verify/presence.rb, line 319
def initialize(value, *params)
  @value = value
  @conditions = []
  parse_params(params)
end

Private Instance Methods

matcher_method() click to toggle source
# File lib/kameleon/dsl/verify/presence.rb, line 360
def matcher_method
  case value
    when :selected, :select
      :have_select
    when :unselected, :unselect
      :have_no_select
    else
      raise "not supported"
  end
end
parse_params(params) click to toggle source
# File lib/kameleon/dsl/verify/presence.rb, line 327
def parse_params(params)
  case params
    when Hash
      params.each_pair do |selected_value, identifier|
        case identifier
          when Array
            selected_value.each do |value|
              parse_params(value => identifier)
            end
          when Symbol
            parse_params(selected_value => identifier.to_s)
          when String
            value = case selected_value
                      when Symbol, Fixnum
                        selected_value.to_s
                      when String, Array
                        selected_value
                      else
                        raise "not supported"
                    end
            conditions << Condition.new(matcher_method, identifier, :selected => value)
          else
            raise "not supported"
        end
      end
    when Array
      params.each { |param| parse_params(param) }
    else
      raise "not supported"
  end
end