Module: Sinatra::Pebblebed
- Defined in:
- lib/pebblebed/sinatra.rb
Defined Under Namespace
Modules: Helpers
Class Method Summary collapse
Instance Method Summary collapse
-
#assign_provisional_identity(opts = {}) ⇒ Object
Adds a before filter to ensure all visitors gets assigned a provisional identity.
- #declare_pebbles(&block) ⇒ Object
- #i_am(service_name) ⇒ Object
Class Method Details
Instance Method Details
#assign_provisional_identity(opts = {}) ⇒ Object
Adds a before filter to ensure all visitors gets assigned a provisional identity. The options hash takes an optional key “unless” which can be used to specify a lambda/proc that yields true if the request should not trigger a redirect to checkpoint
TODO: Also implement a guard against infinite redirect loops
Usage example:
assign_provisional_identity :unless => lambda {
request.path_info == '/ping' || BotDetector.bot?(request.user_agent)
}
146 147 148 149 150 151 152 153 |
# File 'lib/pebblebed/sinatra.rb', line 146 def assign_provisional_identity(opts={}) before do skip = opts.has_key?(:unless) && instance_exec(&opts[:unless]) if !skip && current_identity.nil? redirect pebbles.checkpoint.service_url("/login/anonymous", :redirect_to => request.path).to_s end end end |
#declare_pebbles(&block) ⇒ Object
125 126 127 |
# File 'lib/pebblebed/sinatra.rb', line 125 def declare_pebbles(&block) ::Pebblebed.config(&block) end |
#i_am(service_name) ⇒ Object
129 130 131 |
# File 'lib/pebblebed/sinatra.rb', line 129 def i_am(service_name) set :service_name, service_name end |