module Roda::RodaPlugins::ConditionalSessions

The conditional_sessions plugin loads the sessions plugin. However, it only allows sessions if the block passed to the plugin returns truthy. The block is evaluated in request context. This is designed for use in applications that want to use sessions for some requests, and want to be sure that sessions are not used for other requests. For example, if you want to make sure that sessions are not used for requests with paths starting with /static, you could do:

plugin :conditional_sessions, secret: ENV["SECRET"] do
  !path_info.start_with?('/static')
end

The the request session, session_created_at, and session_updated_at methods raise a RodaError exception when sessions are not allowed. The request persist_session and route scope clear_session methods do nothing when sessions are not allowed.