Methods
Public Class
Public Instance
Public Class methods
new(roda, path)
[show source]
# File lib/autoforme/frameworks/roda.rb 7 def initialize(roda, path) 8 @controller = roda 9 @request = roda.request 10 @params = @request.params 11 @session = roda.session 12 captures = @request.captures 13 @env = @request.env 14 @method = @env['REQUEST_METHOD'] 15 @model = captures[-2] 16 @action_type = captures[-1] 17 @path = path 18 remaining_path = if @request.respond_to?(:remaining_path) 19 @request.remaining_path 20 else 21 # :nocov: 22 @env['PATH_INFO'] 23 # :nocov: 24 end 25 26 path_id = $1 if remaining_path =~ %r{\A\/([:\w-]+)\z} 27 set_id(path_id) 28 end
Public Instance methods
csrf_token_hash(action=nil)
Use Rack::Csrf for csrf protection if it is defined.
[show source]
# File lib/autoforme/frameworks/roda.rb 53 def csrf_token_hash(action=nil) 54 if @controller.respond_to?(:check_csrf!) 55 # Using route_csrf plugin 56 token = if @controller.use_request_specific_csrf_tokens? 57 @controller.csrf_token(@controller.csrf_path(action)) 58 # :nocov: 59 else 60 @controller.csrf_token 61 # :nocov: 62 end 63 {@controller.csrf_field=>token} 64 # :nocov: 65 elsif defined?(::Rack::Csrf) && !@controller.opts[:no_csrf] 66 {::Rack::Csrf.field=>::Rack::Csrf.token(@env)} 67 # :nocov: 68 end 69 end
redirect(path)
Redirect to the given path
[show source]
# File lib/autoforme/frameworks/roda.rb 31 def redirect(path) 32 @request.redirect(path) 33 end
set_flash_notice(message)
Set the flash at notice level when redirecting, so it shows up on the redirected page.
[show source]
# File lib/autoforme/frameworks/roda.rb 42 def set_flash_notice(message) 43 @controller.flash[flash_key(:notice)] = message 44 end
set_flash_now_error(message)
Set the current flash at error level, used when displaying pages when there is an error.
[show source]
# File lib/autoforme/frameworks/roda.rb 48 def set_flash_now_error(message) 49 @controller.flash.now[flash_key(:error)] = message 50 end
xhr?()
Whether the request is an asynchronous request
[show source]
# File lib/autoforme/frameworks/roda.rb 36 def xhr? 37 @env['HTTP_X_REQUESTED_WITH'] =~ /XMLHttpRequest/i 38 end