Module: Lotus::Action::Rack::ClassMethods

Defined in:
lib/lotus/action/rack.rb

Overview

Since:

  • 0.1.0

Instance Method Summary collapse

Instance Method Details

#rack_builderRack::Builder

Build rack builder

Returns:

  • (Rack::Builder)

Since:

  • 0.1.0



61
62
63
64
65
66
67
68
# File 'lib/lotus/action/rack.rb', line 61

def rack_builder
  @rack_builder ||= begin
    extend Lotus::Action::Rack::Callable
    rack_builder = ::Rack::Builder.new
    rack_builder.run ->(env) { self.new.call(env) }
    rack_builder
  end
end

#use(middleware, *args, &block) ⇒ Object

Use a Rack middleware

The middleware will be used as it is.

At the runtime, the middleware be invoked with the raw Rack env.

Multiple middlewares can be employed, just by using multiple times this method.

Examples:

Middleware

require 'lotus/controller'

module Sessions
  class Create
    include Lotus::Action
    use OmniAuth

    def call(params)
      # ...
    end
  end
end

Parameters:

  • middleware (#call)

    A Rack middleware

  • args (Array)

    Array arguments for middleware

See Also:

Since:

  • 0.2.0



98
99
100
# File 'lib/lotus/action/rack.rb', line 98

def use(middleware, *args, &block)
  rack_builder.use middleware, *args, &block
end