module Operatic
Constants
- FailureError
- OperaticError
- VERSION
Attributes
result[R]
An instance of {Result} or a subclass generated by {ClassMethods#result}.
@return [Result]
Public Class Methods
included(base)
click to toggle source
@!visibility private
# File lib/operatic.rb, line 7 def self.included(base) base.extend(ClassMethods) end
new(attrs = nil)
click to toggle source
# File lib/operatic.rb, line 72 def initialize(attrs = nil) @result = self.class.result_class.new attrs.each do |key, value| instance_variable_set("@#{key}", value) end if attrs end
Public Instance Methods
call()
click to toggle source
Override this method with your implementation. Use {#success!} or {#failure!} methods to communicate the {#result}'s status and to attach data it. Define convenience result accessors with {ClassMethods#result}.
@example
class SayHello include Operatic attr_reader :name def call return failure! unless name success!(message: "Hello #{name}") end end result = SayHello.call(name: 'Dave') result.success? # => true result.to_h # => {:message=>"Hello Dave"} result = SayHello.call result.failure? # => true result.success? # => false result.to_h # => {}
# File lib/operatic.rb, line 104 def call end
failure!(data = nil)
click to toggle source
Convenience shortcut to the operation's {Result#failure!}.
# File lib/operatic.rb, line 108 def failure!(data = nil) result.failure!(data) end
success!(data = nil)
click to toggle source
Convenience shortcut to the operation's {Result#success!}.
# File lib/operatic.rb, line 113 def success!(data = nil) result.success!(data) end