Sha256: e864b28ffba279bce562636128482ee05fe07eae4bff8ffd9a453c5503cada1a

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

# frozen_string_literal: true

module ConvenientService
  module Core
    module Entities
      class Config
        module Entities
          class MethodMiddlewares
            module Entities
              class MiddlewareCreator
                ##
                # @!attribute [r] middleware
                #   @return [Class]
                #
                attr_reader :middleware

                ##
                # @!attribute [r] arguments
                #   @return [ConvenientService::Support::Arguments]
                #
                attr_reader :arguments

                ##
                # @param middleware [Class]
                # @param arguments [ConvenientService::Support::Arguments]
                # @return [void]
                #
                def initialize(middleware:, arguments:)
                  @middleware = middleware
                  @arguments = arguments
                end

                ##
                # @param other [Object]
                # @return [Boolean, nil]
                #
                def ==(other)
                  return unless other.instance_of?(self.class)

                  return false if middleware != other.middleware
                  return false if arguments != other.arguments

                  true
                end

                ##
                # @param stack [#call<Hash>]
                # @param env [Hash]
                # @param arguments [ConvenientService::Support::Arguments]
                # @return [ConvenientService::Core::Entities::Config::Entities::MethodMiddlewares::Entities::Middleware]
                #
                def new(stack, env: {}, arguments: self.arguments)
                  middleware.new(stack, env: env, arguments: arguments)
                end
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
convenient_service-0.12.0 lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creator.rb