class Kameleon::DSL::Verify::Presence

Attributes

conditions[RW]
params[RW]

Public Class Methods

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

  parse_conditions
end

Private Instance Methods

parse_conditions() click to toggle source
# File lib/kameleon/dsl/verify/presence.rb, line 17
def parse_conditions
  prepare_conditions(params)
end
prepare_conditions(param) click to toggle source
# File lib/kameleon/dsl/verify/presence.rb, line 21
def prepare_conditions(param)
  case param
    when String, Fixnum
      param = param.to_s
      conditions << Condition.new(:have_content, param)
    when Symbol
      prepare_conditions(:element => param)
    when Hash
      param.each_pair do |type, values|
        case type
          when :link, :links
            conditions.concat Link.new(values).conditions
          when :image, :images
            conditions.concat Image.new(values).conditions
          when :ordered
            conditions.concat Sequence.new(values).conditions
          when Fixnum
            conditions.concat Quantity.new(type, values).conditions
          when String
            if type == ""
              prepare_conditions(:empty => values)
            else
              conditions.concat TextInput.new(type, values).conditions
            end
          when :checked, :unchecked, :check, :uncheck
            conditions.concat CheckBoxInput.new(type, values).conditions
          when :selected, :unselected, :select, :unselect
            conditions.concat SelectInput.new(type, values).conditions
          when :field, :fields
            conditions.concat TextInput.new(nil, values).conditions
          when :empty
            conditions.concat EmptyInput.new(values).conditions
          when :element
            conditions.concat Element.new(values).conditions
          else
            raise Kameleon::NotImplementedException, "Not implemented #{param}"
        end
      end
    when Array
      param.each { |parameter| prepare_conditions(parameter) }
    else
      raise Kameleon::NotImplementedException, "Not implemented #{param}"
  end
end