class ChainedValidation::Validate

Public Class Methods

new(validations) click to toggle source
# File lib/chained_validation/validate.rb, line 3
def initialize(validations)
  @validations = validations
end

Public Instance Methods

claim() click to toggle source

Return a result of validation.

# File lib/chained_validation/validate.rb, line 8
def claim
  is_valid?
end
claim!() click to toggle source

Claim result with exceptions.

# File lib/chained_validation/validate.rb, line 13
def claim!
  is_valid? ? true : result_exceptions
end

Private Instance Methods

is_valid?() click to toggle source

If in result_values have an false value, the validation of rules failed.

# File lib/chained_validation/validate.rb, line 50
def is_valid?
  results_values.include?(false) ? false : true
end
result_exceptions() click to toggle source

Return an exception for a list of validations with result false.

# File lib/chained_validation/validate.rb, line 45
def result_exceptions
  results_messages.each { |msg| raise TypeError, msg }
end
results() click to toggle source

Parse ChainedValidation::Validation classes for one array of hashes with results:

{ :is_boolean=>{:object=>“foo”, :result=>false}}, {:is_boolean=>{:object=>true, :result=>true }}
# File lib/chained_validation/validate.rb, line 21
def results
  @validations.map(&:result).collect { |result| result.values.first }
end
results_false() click to toggle source

Return a hash for validation false.

{:is_boolean=>{ :object=>“foo”, :result=>false }}
# File lib/chained_validation/validate.rb, line 33
def results_false
  @validations.map(&:result).collect { |result| result if result.values.first[:result] == false }.compact
end
results_messages() click to toggle source

Collect all error messages.

# File lib/chained_validation/validate.rb, line 38
def results_messages
  results_false.map do |result|
    "Object #{result.values.first[:object]} does not match the rule #{result.keys.first}"
  end
end
results_values() click to toggle source

Return only value of results in an array of booleans:

false, true
# File lib/chained_validation/validate.rb, line 27
def results_values
  results.collect { |result| result[:result] }
end