class RubyMotionQuery::RMQ

Public Class Methods

validation() click to toggle source

@return [Validation]

# File lib/project/ruby_motion_query/rmq_validation.rb, line 5
def self.validation
  Validation
end

Public Instance Methods

clear_validations!() click to toggle source

@return [RMQ]

# File lib/project/ruby_motion_query/rmq_validation.rb, line 23
def clear_validations!
  selected.each do |view|
    view.rmq_data.validations = []
  end
  self
end
invalid() click to toggle source

@return [Array] of views where validations have failed

# File lib/project/ruby_motion_query/rmq_validation.rb, line 73
def invalid
  selected.reject do |view|
    view.rmq_data.validations.map{ |validation| validation.valid_status }.reduce(:&)
  end
end
valid() click to toggle source

@return [Array] of views where validations have not failed

# File lib/project/ruby_motion_query/rmq_validation.rb, line 80
def valid
  selected.select do |view|
    view.rmq_data.validations.map{ |validation| validation.valid_status }.reduce(:&)
  end
end
valid?() click to toggle source

This method validates all the selected and is responsible for calling invalid/valid events

@return [Boolean] false if any validations fail

# File lib/project/ruby_motion_query/rmq_validation.rb, line 34
def valid?
  result = true

  selected.each do |view|
    view.rmq_data.validations.each do |validation|

      has_events = view.rmq_data.events

      if validation.valid?(rmq(view).data)
        if has_events && view.rmq_data.events.has_event?(:valid)
          view.rmq_data.events[:valid].fire!
        end
      else
        if has_events && view.rmq_data.events.has_event?(:invalid)
          view.rmq_data.events[:invalid].fire!
        end
        result = false
      end
    end
  end
  return result
end
validates(rule, options={}) click to toggle source

@return [RMQ]

# File lib/project/ruby_motion_query/rmq_validation.rb, line 15
def validates(rule, options={})
  selected.each do |view|
    view.rmq_data.validations << Validation.new(rule, options)
  end
  self
end
validation() click to toggle source

@return [Validation]

# File lib/project/ruby_motion_query/rmq_validation.rb, line 10
def validation
  Validation
end
validation_errors() click to toggle source

@return [Array] of error messages for failed validations

# File lib/project/ruby_motion_query/rmq_validation.rb, line 58
def validation_errors
  errors = []
  selected.each do |view|
    view.rmq_data.validations.each do |validation|
      unless validation.valid_status
        default_error = "Validation Error - input requires valid #{validation.rule_name}."
        rule_message  = view.rmq_data.validation_errors[validation.rule_name] || default_error
        errors.push(rule_message)
      end
    end
  end
  return errors
end