Sha256: e93a33beef8a6cba5d01c73fbf19d3b005d41b6fb0eb82514eae7949de0a564f

Contents?: true

Size: 1.17 KB

Versions: 25

Compression:

Stored size: 1.17 KB

Contents

module Merb
  module Rack
    module Helpers
      
      # A helper to build a rack response which implements a redirect.  The status will be set to 
      # the passed in status if passed.  If you pass in permanent it will be a 301, permanent redirect,
      # otherwise it defaults to a temporary 302 redirect.  
      #
      # ==== Parameters
      # url<~to_s>:: The url to redirect to.
      # options<Hash>:: A hash of options for the redirect
      #   status: The status code to use for the redirect
      #   permanent:  True if this is a permanent redirect (301)
      #
      # ==== Returns
      # <Array>:: A rack response to redirect to the specified url.  
      #
      # :api: plugin
      def self.redirect(url, options = {})
        # Build the rack array
        status   = options.delete(:status)
        status ||= options[:permanent] ? 301 : 302
        
        Merb.logger.info("Dispatcher redirecting to: #{url} (#{status})")
        Merb.logger.flush
        
        [status, { Merb::Const::LOCATION => url },
         Merb::Rack::StreamWrapper.new("<html><body>You are being <a href=\"#{url}\">redirected</a>.</body></html>")]
      end
      
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
merb-core-1.1.3 lib/merb-core/rack/helpers.rb
merb-core-1.1.2 lib/merb-core/rack/helpers.rb
merb-core-1.1.1 lib/merb-core/rack/helpers.rb
merb-core-1.1.0 lib/merb-core/rack/helpers.rb
merb-core-1.1.0.rc1 lib/merb-core/rack/helpers.rb
merb-core-1.1.0.pre lib/merb-core/rack/helpers.rb
merb-core-1.0.15 lib/merb-core/rack/helpers.rb
merb-core-1.0.14 lib/merb-core/rack/helpers.rb
merb-core-1.0.13 lib/merb-core/rack/helpers.rb
merb-core-1.0.12 lib/merb-core/rack/helpers.rb
merb-core-1.0.2 lib/merb-core/rack/helpers.rb
merb-core-1.0.11 lib/merb-core/rack/helpers.rb
merb-core-1.0.1 lib/merb-core/rack/helpers.rb
merb-core-1.0.10 lib/merb-core/rack/helpers.rb
merb-core-1.0.3 lib/merb-core/rack/helpers.rb
merb-core-1.0.6.1 lib/merb-core/rack/helpers.rb
merb-core-1.0.5 lib/merb-core/rack/helpers.rb
merb-core-1.0.4 lib/merb-core/rack/helpers.rb
merb-core-1.0.8.1 lib/merb-core/rack/helpers.rb
merb-core-1.0.6 lib/merb-core/rack/helpers.rb