Sha256: 80f06a8e7cfa1a6b9f9e6765421e85ecb919299119016bc90c6dc93e1c190345

Contents?: true

Size: 1.49 KB

Versions: 7

Compression:

Stored size: 1.49 KB

Contents

class Roda
  module RodaPlugins
    # The not_found plugin adds a +not_found+ class method which sets
    # a block that is called whenever a 404 response with an empty body
    # would be returned.  The usual use case for this is the desire for
    # nice error pages if the page is not found.
    #
    # You can provide the block with the plugin call:
    #
    #   plugin :not_found do
    #     "Where did it go?"
    #   end
    #   
    # Or later via a separate call to +not_found+:
    #
    #   plugin :not_found
    #
    #   not_found do
    #     "Where did it go?"
    #   end
    #
    # Before not_found is called, any existing headers on the response
    # will be cleared.  So if you want to be sure the headers are set
    # even in a not_found block, you need to reset them in the
    # not_found block.
    #
    # This plugin is now a wrapper around the +status_handler+ plugin and
    # still exists mainly for backward compatibility.
    module NotFound
      # Require the status_handler plugin
      def self.load_dependencies(app)
        app.plugin :status_handler
      end

      # If a block is given, install the block as the not_found handler.
      def self.configure(app, &block)
        if block
          app.not_found(&block)
        end
      end

      module ClassMethods
        # Install the given block as the not_found handler.
        def not_found(&block)
          status_handler(404, &block)
        end
      end
    end

    register_plugin(:not_found, NotFound)
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
roda-2.9.0 lib/roda/plugins/not_found.rb
roda-2.8.0 lib/roda/plugins/not_found.rb
roda-2.7.0 lib/roda/plugins/not_found.rb
roda-2.6.0 lib/roda/plugins/not_found.rb
roda-2.5.1 lib/roda/plugins/not_found.rb
roda-2.5.0 lib/roda/plugins/not_found.rb
roda-2.4.0 lib/roda/plugins/not_found.rb