Sha256: 74f80e82ae4e25ed4bcea813cc386f7546fd72b9a72020c26ab7e00d314c9e83

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

require 'aerogel/core/routes/namespace'
require 'aerogel/core/routes/sinatra_ex'

module Aerogel::Routes

  def self.registered(app)
    reset!(app)
    # load routes
    Aerogel.get_resource_list( :app, "routes/**/*.rb" ).reverse.each do |filename|
      Aerogel.require_into( Aerogel::Application, filename )
    end

    # register reloader
    setup_reloader(app) if Aerogel.config.aerogel.reloader?
  end


  # Starts a new route namespace:
  #
  # get '/bar' do
  #   # matches '/bar' route
  # end
  #
  # namespace '/foo' do
  #   get '/bar' do
  #     # matches '/foo/bar' route
  #   end
  # end
  #
  def namespace( path, *args, &block )
    Namespace.new self, path, &block
  end

private

  # Resets items defined in app/routes/*.
  #
  def self.reset!(app)
    app.reset_routes!
  end

  # Sets up reloader for routes.
  #
  def self.setup_reloader(app)
    app.use Aerogel::Reloader, ->{ Aerogel.get_resource_list( :app, "routes/**/*.rb" ) } do |files|
      # reset routes
      reset!(app)
      files.reverse.each do |filename|
        Aerogel.require_into( Aerogel::Application, filename )
      end
    end
  end

end # module Aerogel::Routes

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aerogel-core-1.3.0 lib/aerogel/core/routes.rb