module Roda::RodaPlugins::SharedVars::InstanceMethods
def shared(vars=nil)
only make the changes to the shared vars for the duration of the
If a block is given, a +vars+ argument must be provided, and it will
merged into the current shared vars.
If the +vars+ argument is given, it should be a hash that will be
shared with other apps using this plugin.
stored in the request's environment, so they will be implicitly
Returns the current shared vars for the request. These are
def shared(vars=nil) h = env['roda.shared'] ||= {} if defined?(yield) if vars begin env['roda.shared'] = h.merge(vars) yield ensure env['roda.shared'] = h end else raise RodaError, "must pass a vars hash when calling shared with a block" end elsif vars h.merge!(vars) end h end