Class: ConvenientService::Support::Middleware::StackBuilder::Entities::Builders::RubyMiddleware

Inherits:
Dependencies::Extractions::RubyMiddleware::Middleware::Builder show all
Defined in:
lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb

Instance Method Summary collapse

Methods inherited from Dependencies::Extractions::RubyMiddleware::Middleware::Builder

#call, #delete, #flatten, #inject_logger, #insert, #insert_after, #insert_after_each, #insert_before_each, #inspect, #name, #replace, #use

Constructor Details

#initialize(opts = {}, &block) ⇒ void



30
31
32
33
34
35
36
37
38
39
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb', line 30

def initialize(opts = {}, &block)
  super

  @middleware_name = opts.fetch(:name) { "Stack" }

  ##
  # https://github.com/marian13/ruby-middleware/blob/v0.4.2/lib/middleware/builder.rb#L174
  #
  self.stack = opts[:stack] if opts.has_key?(:stack)
end

Instance Method Details

#==(other) ⇒ Boolean?

Parameters:

Returns:

  • (Boolean, nil)


108
109
110
111
112
113
114
115
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb', line 108

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

  return false if name != other.name
  return false if stack != other.stack

  true
end

#clearBoolean

Returns:

  • (Boolean)


59
60
61
62
63
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb', line 59

def clear
  stack.clear

  self
end

#dupConvenientService::Support::Middleware::StackBuilder



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb', line 136

def dup
  self.class.new(
    ##
    # https://github.com/marian13/ruby-middleware/blob/v0.4.2/lib/middleware/builder.rb#L45
    #
    runner_class: @runner_class,
    ##
    # https://github.com/marian13/ruby-middleware/blob/v0.4.2/lib/middleware/builder.rb#L46
    #
    name: @middleware_name.dup,
    ##
    # https://github.com/marian13/ruby-middleware/blob/v0.4.2/lib/middleware/builder.rb#L167
    #
    stack: stack.dup
  )
end

#empty?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb', line 44

def empty?
  stack.empty?
end

#has?(some_middleware) ⇒ Boolean

Parameters:

  • some_middleware (#call<Hash>)

Returns:

  • (Boolean)


52
53
54
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb', line 52

def has?(some_middleware)
  stack.any? { |middleware| middleware == [some_middleware, [], nil] }
end

#to_aArray

Returns:

  • (Array)


126
127
128
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb', line 126

def to_a
  stack.map(&:first)
end

#unshift(middleware, *args, &block) ⇒ ConvenientService::Support::Middleware::StackBuilder::Entities::Builders::RubyMiddleware Also known as: prepend

Parameters:

  • middleware (#call<Hash>)
  • args (Array<Object>)
  • block (Proc, nil)

Returns:



74
75
76
77
78
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb', line 74

def unshift(middleware, *args, &block)
  stack.unshift([middleware, args, block])

  self
end