Module: Sinatra::Pebblebed

Defined in:
lib/pebblebed/sinatra.rb

Defined Under Namespace

Modules: Helpers

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.registered(app) ⇒ Object



121
122
123
# File 'lib/pebblebed/sinatra.rb', line 121

def self.registered(app)
  app.helpers(Sinatra::Pebblebed::Helpers)
end

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