solid-process/solid-result

View on GitHub
sig/solid/result/expectations.rbs

Summary

Maintainability
Test Coverage
class Solid::Result::Expectations
  def self.mixin: (
    ?config: Hash[Symbol, Hash[Symbol, bool]],
    ?success: Hash[Symbol, untyped] | Array[Symbol],
    ?failure: Hash[Symbol, untyped] | Array[Symbol]
  ) -> Module

  def self.mixin!: (
    ?config: Hash[Symbol, Hash[Symbol, bool]],
    ?success: Hash[Symbol, untyped] | Array[Symbol],
    ?failure: Hash[Symbol, untyped] | Array[Symbol]
  ) -> Module

  def self.mixin_module: -> singleton(Solid::Result::Expectations::Mixin)

  def self.result_factory_without_expectations: -> singleton(Solid::Result)

  def self.new: (
    ?source: untyped,
    ?contract: Solid::Result::Contract::Evaluator,
    ?terminal: bool,
    **untyped
  ) -> (Solid::Result::Expectations | untyped)

  def initialize: (
    ?source: untyped,
    ?contract: Solid::Result::Contract::Evaluator,
    ?terminal: bool,
    **untyped
  ) -> void

  def Success: (Symbol, ?untyped) -> Solid::Result::Success
  def Failure: (Symbol, ?untyped) -> Solid::Result::Failure

  def with: (source: untyped) -> Solid::Result::Expectations

  private

  def _ResultAs: (singleton(Solid::Result), Symbol, untyped) -> untyped

  attr_reader source: untyped
  attr_reader contract: Solid::Result::Contract::Evaluator
  attr_reader terminal: bool
end

module Solid::Result::Expectations::Mixin
  module Factory
    def self.module!: -> Module
  end

  module Methods
    BASE: String
    FACTORY: String

    def self.to_eval: (Hash[Symbol, untyped]) -> String
  end

  module Addons
    module Continue
      private def Continue: (untyped) -> Solid::Result::Success
    end

    module Given
      private def Given: (untyped) -> Solid::Result::Success
    end

    OPTIONS: Hash[Symbol, Module]

    def self.options: (Hash[Symbol, Hash[Symbol, bool]]) -> Hash[Symbol, Module]
  end
end