Sha256: e5cf53c4ba0ebafca2fe06c85c93a06bc20f839b57dcf9a0bf523fbad37d39cb

Contents?: true

Size: 1.36 KB

Versions: 1

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

require_relative "status/class_methods"

module ConvenientService
  module Service
    module Plugins
      module HasResult
        module Entities
          class Result
            module Entities
              class Status
                include Support::Castable

                extend ClassMethods

                attr_reader :value

                def initialize(value:)
                  @value = value
                end

                def ==(other)
                  casted = cast(other)

                  return unless casted

                  value == casted.value
                end

                def success?
                  value == :success
                end

                def failure?
                  value == :failure
                end

                def error?
                  value == :error
                end

                def not_success?
                  !success?
                end

                def not_failure?
                  !failure?
                end

                def not_error?
                  !error?
                end

                def to_s
                  @to_s ||= value.to_s
                end

                def to_sym
                  @to_sym ||= value.to_sym
                end
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
convenient_service-0.1.0 lib/convenient_service/service/plugins/has_result/entities/result/entities/status.rb