Module: Tzu::Validation

Defined in:
lib/tzu/validation.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
7
8
9
# 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

Instance Method Details

#fail!(type, data = {}) ⇒ Object

Raises:



30
31
32
# File 'lib/tzu/validation.rb', line 30

def fail!(type, data = {})
  raise Failure.new(type, data)
end

#invalid!(obj) ⇒ Object

Raises:



22
23
24
25
26
27
28
# 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) ⇒ Object



17
18
19
20
# 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) ⇒ Object



11
12
13
14
15
# 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