module Tzu::Validation
Public Class Methods
included(base)
click to toggle source
# File lib/tzu/validation.rb, line 4 def self.included(base) base.class_eval do # registers validation as a before hook before :when_valid end end
Public Instance Methods
fail!(type, data = {})
click to toggle source
# File lib/tzu/validation.rb, line 30 def fail!(type, data = {}) raise Failure.new(type, data) end
invalid!(obj)
click to toggle source
# File lib/tzu/validation.rb, line 22 def invalid!(obj) output = [:errors, :messages, :message].reduce(obj) do |result, m| result = result.respond_to?(m) ? result.send(m) : result end raise Invalid.new(output) end
validate(params)
click to toggle source
# File lib/tzu/validation.rb, line 17 def validate(params) return ValidationResult.new(params.valid?, params.errors) if params.respond_to?(:valid?) ValidationResult.new(true) end
when_valid(params)
click to toggle source
# File lib/tzu/validation.rb, line 11 def when_valid(params) validation_result = validate(params) invalid!(validation_result.errors) unless validation_result.valid? validation_result end