module Tzu

Public Class Methods

included(base) click to toggle source
# File lib/tzu.rb, line 15
def self.included(base)
  base.class_eval do
    extend RunMethods
    include Hooks
    include Validation
  end
end

Public Instance Methods

command_name() click to toggle source
# File lib/tzu.rb, line 39
def command_name
  self.class.command_name
end
run(params) click to toggle source
# File lib/tzu.rb, line 23
def run(params)
  run!(params)
rescue Failure => f
  Outcome.new(false, f.errors, f.type)
end
run!(params) click to toggle source
# File lib/tzu.rb, line 29
def run!(params)
  with_hooks(init_request_object(params)) do |p|
    outcome = call(p)
    outcome.is_a?(Tzu::Outcome) ? outcome : Outcome.new(true, outcome)
  end
rescue
  rollback! if self.respond_to?(:rollback!)
  raise
end

Private Instance Methods

init_request_object(params) click to toggle source
# File lib/tzu.rb, line 45
def init_request_object(params)
  request_klass = self.class.request_klass
  return request_klass.new(params) if request_klass
  params
end