module Zen::Service::Plugins::Status

Public Class Methods

configure(service_class, success:, failure:) click to toggle source
# File lib/zen/service/plugins/status.rb, line 18
def self.configure(service_class, success:, failure:)
  service_class::StatusHelpers.module_eval do
    success.each do |name|
      define_method(name) do |**opts, &block|
        success(status: name, **opts, &block)
      end
    end

    failure.each do |name|
      define_method(name) do |**opts, &block|
        failure(status: name, **opts, &block)
      end
    end
  end
end
used(service_class, **) click to toggle source
# File lib/zen/service/plugins/status.rb, line 10
def self.used(service_class, **)
  service_class.add_execution_prop(:status)

  helpers = Module.new
  service_class.const_set(:StatusHelpers, helpers)
  service_class.send(:include, helpers)
end

Public Instance Methods

status() click to toggle source
# File lib/zen/service/plugins/status.rb, line 34
def status
  state.status
end

Private Instance Methods

failure(status: :failure, **) click to toggle source
Calls superclass method
# File lib/zen/service/plugins/status.rb, line 53
        def failure(status: :failure, **)
  super.tap do
    state.status = status
  end
end
failure!(status: :failure, **) click to toggle source
Calls superclass method
# File lib/zen/service/plugins/status.rb, line 48
        def failure!(status: :failure, **)
  state.status = status
  super
end
result_with(*) click to toggle source
Calls superclass method
# File lib/zen/service/plugins/status.rb, line 59
        def result_with(*)
  super
  state.status ||= state.success ? :success : :failure
end
success(status: :success, **) click to toggle source
Calls superclass method
# File lib/zen/service/plugins/status.rb, line 43
        def success(status: :success, **)
  state.status = status
  super
end
success!(status: :success, **) click to toggle source
Calls superclass method
# File lib/zen/service/plugins/status.rb, line 38
        def success!(status: :success, **)
  state.status = status
  super
end