Sha256: 09e1694e5ced023be34af6b081e9bd615ca19640364d69c089951bd2c8b7175e

Contents?: true

Size: 885 Bytes

Versions: 18

Compression:

Stored size: 885 Bytes

Contents

module Unpoly
  module Rails
    ##
    # Installs a `before_action` into all controllers which echoes the
    # request's URL as a response header `X-Up-Location` and the request's
    # HTTP method as `X-Up-Method`.
    #
    # The Unpoly frontend requires these headers to detect redirects,
    # which are otherwise undetectable for an AJAX client.
    module RequestEchoHeaders

      def self.included(base)
        if base.respond_to?(:before_action)
          base.before_action :set_up_request_echo_headers
        else
          base.before_filter :set_up_request_echo_headers
        end
      end

      private
      
      def set_up_request_echo_headers
        response.headers['X-Up-Location'] = up.request_url_without_up_params
        response.headers['X-Up-Method'] = request.method
      end

      ::ActionController::Base.send(:include, self)

    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
unpoly-rails-2.7.2.1 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.7.2 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-3.0.0.rc2 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-3.0.0.rc1 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.7.1.1 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.7.1 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.6.1 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.6.0 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.5.3 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.5.2 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.5.1 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.5.0 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.4.1 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.4.0 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.3.0 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.2.1 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.2.0 lib/unpoly/rails/request_echo_headers.rb
unpoly-rails-2.2.0.pre.rc1 lib/unpoly/rails/request_echo_headers.rb