Sha256: 8cf621b65812eb45935d0891163942b8a22381ddb0396ba97c2a1d25dd8c3859

Contents?: true

Size: 1.18 KB

Versions: 8

Compression:

Stored size: 1.18 KB

Contents

module Hanami
  module Action
    module Rack
      module Callable
        # Callable module for actions. With this module, actions with middlewares
        # will be able to work with rack builder.
        #
        # @param env [Hash] the full Rack env or the params. This value may vary,
        #   see the examples below.
        #
        # @since 0.4.0
        #
        # @see Hanami::Action::Rack::ClassMethods#rack_builder
        # @see Hanami::Action::Rack::ClassMethods#use
        #
        # @example
        #   require 'hanami/controller'
        #
        #    class MyMiddleware
        #      def initialize(app)
        #        @app = app
        #      end
        #
        #      def call(env)
        #        #...
        #      end
        #    end
        #
        #    class Show
        #      include Hanami::Action
        #      use MyMiddleware
        #
        #      def call(params)
        #        # ...
        #        puts params # => { id: 23 } extracted from Rack env
        #      end
        #    end
        #
        #    Show.respond_to?(:call) # => true
        def call(env)
          rack_builder.call(env)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
hanami-controller-1.0.0.beta2 lib/hanami/action/rack/callable.rb
hanami-controller-1.0.0.beta1 lib/hanami/action/rack/callable.rb
hanami-controller-0.8.1 lib/hanami/action/rack/callable.rb
hanami-controller-0.8.0 lib/hanami/action/rack/callable.rb
hanami-controller-0.7.1 lib/hanami/action/rack/callable.rb
hanami-controller-0.7.0 lib/hanami/action/rack/callable.rb
hanami-controller-0.6.1 lib/hanami/action/rack/callable.rb
hanami-controller-0.6.0 lib/hanami/action/rack/callable.rb