Class: RubyMotionQuery::RMQ

Inherits:
Object show all
Defined in:
lib/project/ruby_motion_query/rmq_validation.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.validationValidation

Returns:



5
6
7
# File 'lib/project/ruby_motion_query/rmq_validation.rb', line 5

def self.validation
  Validation
end

Instance Method Details

#clear_validations!RMQ

Returns:



23
24
25
26
27
28
# 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

#invalidArray

Returns of views where validations have failed.

Returns:

  • (Array)

    of views where validations have failed



73
74
75
76
77
# 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

#validArray

Returns of views where validations have not failed.

Returns:

  • (Array)

    of views where validations have not failed



80
81
82
83
84
# 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?Boolean

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

Returns:

  • (Boolean)

    false if any validations fail



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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 = {}) ⇒ RMQ

Returns:



15
16
17
18
19
20
# 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

#validationValidation

Returns:



10
11
12
# File 'lib/project/ruby_motion_query/rmq_validation.rb', line 10

def validation
  Validation
end

#validation_errorsArray

Returns of error messages for failed validations.

Returns:

  • (Array)

    of error messages for failed validations



58
59
60
61
62
63
64
65
66
67
68
69
70
# 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