Class: ConvenientService::Core::Entities::Config::Entities::MethodMiddlewares::Entities::MiddlewareCreators::Base

Inherits:
Object
  • Object
show all
Includes:
Support::Delegate
Defined in:
lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb

Direct Known Subclasses

Observable, With

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Support::Concern

included

Constructor Details

#initialize(**kwargs) ⇒ void



31
32
33
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 31

def initialize(**kwargs)
  @middleware = kwargs.fetch(:middleware)
end

Instance Attribute Details

#middlewareObject (readonly)

Returns the value of attribute middleware.



18
19
20
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 18

def middleware
  @middleware
end

Instance Method Details

#==(other) ⇒ Boolean?

Parameters:

  • other (Object)

Returns:

  • (Boolean, nil)


80
81
82
83
84
85
86
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 80

def ==(other)
  return unless other.instance_of?(self.class)

  return false if middleware != other.middleware

  true
end

#decorated_middlewareConvenientService::Core::Entities::Config::Entities::MethodMiddlewares::Entities::Middlewares::Base

Note:

May be overridden by descendants.



63
64
65
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 63

def decorated_middleware
  middleware
end

#extra_kwargsHash{Symbol => Object}

Note:

May be overridden by descendants.

Returns:

  • (Hash{Symbol => Object})


72
73
74
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 72

def extra_kwargs
  {}
end

#new(stack, **kwargs) ⇒ ConvenientService::Core::Entities::Config::Entities::MethodMiddlewares::Entities::Middlewares::Base

Parameters:

  • stack (#call<Hash>)
  • kwargs (Hash{Symbol => Object})

Returns:



54
55
56
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 54

def new(stack, **kwargs)
  decorated_middleware.new(stack, **[extra_kwargs, middleware.extra_kwargs, kwargs].reduce(:merge))
end

#observableConvenientService::Core::Entities::Config::Entities::MethodMiddlewares::Entities::MiddlewareCreators::Observable



45
46
47
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 45

def observable
  Entities::MiddlewareCreators::Observable.new(middleware: self)
end

#to_observable_middlewareConvenientService::Core::Entities::Config::Entities::MethodMiddlewares::Entities::Middlewares::Base



23
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 23

delegate :to_observable_middleware, to: :middleware

#withConvenientService::Core::Entities::Config::Entities::MethodMiddlewares::Entities::MiddlewareCreators::With



38
39
40
# File 'lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb', line 38

def with(...)
  Entities::MiddlewareCreators::With.new(middleware: self, middleware_arguments: Support::Arguments.new(...))
end