module Composable::Core::Command

Attributes

result[R]

Public Class Methods

prepended(base) click to toggle source
# File lib/composable/core/command.rb, line 20
def self.prepended(base)
  base.extend ClassMethods

  base.include ActiveModel::Validations
  base.include ActiveSupport::Rescuable
end

Public Instance Methods

call(raise_exception: false) click to toggle source
Calls superclass method
# File lib/composable/core/command.rb, line 27
def call(raise_exception: false)
  fail NotImplementedError unless defined?(super)

  @called = true
  @result = super()

  raise Error, errors.full_messages.to_sentence if raise_exception && failure?

  self
rescue Exception => exception
  raise if raise_exception || !rescue_with_handler(exception)

  self
end
failure?() click to toggle source
# File lib/composable/core/command.rb, line 46
def failure?
  called? && errors.any?
end
success?() click to toggle source
# File lib/composable/core/command.rb, line 42
def success?
  called? && !failure?
end

Private Instance Methods

called?() click to toggle source
# File lib/composable/core/command.rb, line 52
def called?
  @called ||= false
end