module Preform::Validatable

Public Instance Methods

assert(predicate, key, msg) click to toggle source
# File lib/preform.rb, line 31
def assert(predicate, key, msg)
  return if predicate

  errors[key.to_sym] << msg

  false # Allows assertations to be nested.
end
default_errors() click to toggle source
# File lib/preform.rb, line 23
def default_errors
  Hash.new { |hash, key| hash[key] = [] }
end
errors() click to toggle source
# File lib/preform.rb, line 13
def errors
  unless defined?(@errors)
    @errors = default_errors

    validate
  end

  @errors
end
merge_errors!(other) click to toggle source
# File lib/preform.rb, line 27
def merge_errors!(other)
  errors.merge!(other.errors)
end
valid?() click to toggle source
# File lib/preform.rb, line 9
def valid?
  errors.empty?
end
validate() click to toggle source
# File lib/preform.rb, line 5
def validate
  raise NotImplementedError, "validate must be implemented on #{self.class}"
end