module Excom::Plugins::Status

Public Class Methods

used(service_class, success:, failure:) click to toggle source
# File lib/excom/plugins/status.rb, line 6
def self.used(service_class, success:, failure:)
  service_class.add_execution_prop(:status)

  helpers = Module.new do
    success.each do |name|
      define_method(name) do |result = nil|
        success(name) { result }
      end
    end

    failure.each do |name|
      define_method(name) do |result = nil|
        failure(name) { result }
      end
    end
  end

  service_class.const_set('StatusHelpers', helpers)
  service_class.send(:include, helpers)
end

Public Instance Methods

status() click to toggle source
# File lib/excom/plugins/status.rb, line 27
def status
  state.status
end

Private Instance Methods

failure(status = :failure, &block) click to toggle source
Calls superclass method
# File lib/excom/plugins/status.rb, line 46
        def failure(status = :failure, &block)
  super(&block).tap do
    state.status = status
  end
end
failure!(status = :failure) click to toggle source
Calls superclass method
# File lib/excom/plugins/status.rb, line 41
        def failure!(status = :failure)
  state.status = status
  super()
end
result_with(*) click to toggle source
Calls superclass method
# File lib/excom/plugins/status.rb, line 52
        def result_with(*)
  super
  state.status ||= state.success ? :success : :failure
end
success(status = :success, &block) click to toggle source
Calls superclass method
# File lib/excom/plugins/status.rb, line 36
        def success(status = :success, &block)
  state.status = status
  super(&block)
end
success!(status = :success) click to toggle source
Calls superclass method
# File lib/excom/plugins/status.rb, line 31
        def success!(status = :success)
  state.status = status 
  super()
end