Sha256: d0ba121dc02ceb4f290cc64098a4a10249a1cdc06e62c45411558a4aad113fc0

Contents?: true

Size: 1.35 KB

Versions: 1

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true

# @api public
# @since 0.2.0
class SmartCore::Operation
  require_relative 'operation/exceptions'
  require_relative 'operation/state'
  require_relative 'operation/step'
  require_relative 'operation/step_set'
  require_relative 'operation/result'
  require_relative 'operation/success'
  require_relative 'operation/failure'
  require_relative 'operation/fatal'
  require_relative 'operation/custom'
  require_relative 'operation/result_interface'
  require_relative 'operation/instance_builder'

  # @since 0.5.0
  include SmartCore::Initializer
  # @since 0.6.0
  include SmartCore::Operation::ResultInterface

  # @since 0.5.0
  extend_initialization_flow do |operation|
    SmartCore::Operation::InstanceBuilder.call(operation)
  end

  class << self
    # @param arguments [Any]
    # @param options [Hash<Symbol,Any>]
    # @param block [Proc]
    # @return [SmartCore::Operation::Success]
    # @return [SmartCore::Operation::Failure]
    # @return [SmartCore::Operation::Fatal]
    #
    # @api public
    # @since 0.2.0
    def call(*arguments, **options, &block)
      new(*arguments, **options).call(&block)
    end
  end

  # @return [SmartCore::Operation::Success]
  # @return [SmartCore::Operation::Failure]
  # @return [SmartCore::Operation::Fatal]
  # @return [Any]
  #
  # @api public
  # @since 0.2.0
  def call
    Success()
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
smart_core-0.6.0 lib/smart_core/operation.rb