Module: Hanami::Action::Rack::ClassMethods

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

Overview

Since:

  • 0.1.0

Instance Method Summary collapse

Instance Method Details

#params_classClass

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

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.

Returns:

  • (Class)

    A params class (when whitelisted) or Hanami::Action::Params

Since:

  • 0.7.0



120
121
122
# File 'lib/hanami/action/rack.rb', line 120

def params_class
  @params_class ||= BaseParams
end

#rack_builderRack::Builder

Build rack builder

Returns:

  • (Rack::Builder)

Since:

  • 0.1.0



68
69
70
71
72
73
74
75
# File 'lib/hanami/action/rack.rb', line 68

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) ⇒ 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 'hanami/controller'

module Sessions
  class Create
    include Hanami::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



106
107
108
# File 'lib/hanami/action/rack.rb', line 106

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