module Hanami::Action::Rack::ClassMethods

@api private

Public Instance Methods

params_class() click to toggle source

Returns the class which defines the params

Returns the class which has been provided to define the params. By default this will be Hanami::Action::Params.

@return [Class] A params class (when whitelisted) or

Hanami::Action::Params

@api private @since 0.7.0

# File lib/hanami/action/rack.rb, line 168
def params_class
  @params_class ||= BaseParams
end
rack_builder() click to toggle source

Build rack builder

@return [Rack::Builder] @api private

# File lib/hanami/action/rack.rb, line 116
def rack_builder
  @rack_builder ||= begin
    extend Hanami::Action::Rack::Callable
    rack_builder = ::Rack::Builder.new
    rack_builder.run ->(env) { self.new.call(env) }
    rack_builder
  end
end
use(middleware, *args, &block) click to toggle source

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.

@param middleware [#call] A Rack middleware @param args [Array] Array arguments for middleware

@since 0.2.0

@see Hanami::Action::Callbacks::ClassMethods#before

@example Middleware

require 'hanami/controller'

module Sessions
  class Create
    include Hanami::Action
    use OmniAuth

    def call(params)
      # ...
    end
  end
end
# File lib/hanami/action/rack.rb, line 154
def use(middleware, *args, &block)
  rack_builder.use middleware, *args, &block
end