Sha256: eaf32934f773b7c762c54f541ef3d3cc2d3836050b727ba7d25baad02374a878
Contents?: true
Size: 929 Bytes
Versions: 1
Compression:
Stored size: 929 Bytes
Contents
module SinatraMore class NamedRoute # Constructs the NamedRoute which accepts the application and # the route alias names to register (i.e [:account] or [:admin, :show]) # NamedRoute.new(@app, :admin, :show) def initialize(app, *names) @app = app @names = names.flatten end # Used to define the url mapping to the supplied alias # NamedRoute.new(@app, :account).to('/account/path') def to(path) @app.named_paths[@names.unshift(@app.app_name)] = File.join(@app.uri_root, path) end # Used to define the url mappings for child aliases within a namespace # Invokes map on the application itself, appending the namespace to the route # NamedRoute.new(@app, :admin).map(:show).to('/admin/show') # is equivalent to NamedRoute.new(@app, :admin, :show).to('/admin/show') def map(*args, &block) @app.map(*args.unshift(@names), &block) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sinatra_more-0.3.16 | lib/sinatra_more/routing_plugin/named_route.rb |