Module: Roda::RodaPlugins::Delegate
- Defined in:
- lib/roda/plugins/delegate.rb
Overview
The delegate plugin allows you to easily setup instance methods in the scope of the route block that call methods on the related request, response, or class which may offer a simpler API in some cases. Roda doesn’t automatically setup such delegate methods because it pollutes the application’s method namespace, but this plugin allows the user to do so.
Here’s an example based on the README’s initial example, using the request_delegate method to simplify the DSL:
plugin :delegate
request_delegate :root, :on, :is, :get, :post, :redirect
route do |r|
# GET / request
root do
redirect "/hello"
end
# /hello branch
on "hello" do
# Set variable for all routes in /hello branch
@greeting = 'Hello'
# GET /hello/world request
get "world" do
"#{@greeting} world!"
end
# /hello request
is do
# GET /hello request
get do
"#{@greeting}!"
end
# POST /hello request
post do
puts "Someone said #{@greeting}!"
redirect
end
end
end
end
Defined Under Namespace
Modules: ClassMethods