module Interaptor
Constants
- VERSION
Public Class Methods
included(base)
click to toggle source
# File lib/interaptor.rb, line 9 def self.included(base) base.class_eval do include Callbacks end end
Public Instance Methods
add_error(message, source: nil)
click to toggle source
# File lib/interaptor.rb, line 40 def add_error(message, source: nil) @result ||= Interaptor::Result.new(success: false) @result.add_error(Interaptor::Error.new(message, source)) end
call(*params)
click to toggle source
# File lib/interaptor.rb, line 15 def call(*params) begin value = call!(*params) if @result && !@result.success? return Interaptor::Result.new(success: false, errors: @result.errors) end return Interaptor::Result.new.tap do |result| result.value = value end rescue Interaptor::Failure => e return Interaptor::Result.new(success: false, errors: e.errors) end end
call!(*params)
click to toggle source
# File lib/interaptor.rb, line 32 def call!(*params) run_before_callbacks value = execute(*params) run_after_callbacks return value end
fail!(message=nil, source: nil)
click to toggle source
# File lib/interaptor.rb, line 45 def fail!(message=nil, source: nil) add_error(message, source: source) if message raise Interaptor::Failure.new(@result ? @result.errors : []) end