Sha256: be468d32ab23bc310bde8c6f1b59cfa60d4fdcf10a729a827bbe44064ed09d3c

Contents?: true

Size: 799 Bytes

Versions: 4

Compression:

Stored size: 799 Bytes

Contents

# frozen_string_literal: true

module Micro
  class Case
    class Result
      class Wrapper
        def initialize(result)
          @__is_unknown = true

          @result = result
        end

        def failure(type = nil)
          return if @result.success?

          if result_type?(type)
            @__is_unknown = false

            yield(@result)
          end
        end

        def success(type = nil)
          return if @result.failure?

          if result_type?(type)
            @__is_unknown = false

            yield(@result)
          end
        end

        def unknown
          return yield(@result) if @__is_unknown
        end

        private

          def result_type?(type)
            type.nil? || @result.type == type
          end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
u-case-4.2.1 lib/micro/case/result/wrapper.rb
u-case-4.2.0 lib/micro/case/result/wrapper.rb
u-case-4.1.1 lib/micro/case/result/wrapper.rb
u-case-4.1.0 lib/micro/case/result/wrapper.rb