class OpenID::Consumer::DiscoveryManager
Manages calling discovery and tracking which endpoints have already been attempted.
Public Class Methods
new(session, url, session_key_suffix=nil)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 63 def initialize(session, url, session_key_suffix=nil) @url = url @session = OpenID::Consumer::Session.new(session, DiscoveredServices) @session_key_suffix = session_key_suffix || 'auth' end
Public Instance Methods
cleanup(force=false)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 92 def cleanup(force=false) manager = get_manager(force) if !manager.nil? service = manager.current destroy_manager(force) else service = nil end return service end
get_next_service() { |url| ... }
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 70 def get_next_service manager = get_manager if !manager.nil? && manager.empty? destroy_manager manager = nil end if manager.nil? yadis_url, services = yield @url manager = create_manager(yadis_url, services) end if !manager.nil? service = manager.next store(manager) else service = nil end return service end
Protected Instance Methods
create_manager(yadis_url, services)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 114 def create_manager(yadis_url, services) manager = get_manager if !manager.nil? raise StandardError, "There is already a manager for #{yadis_url}" end if services.empty? return nil end manager = DiscoveredServices.new(@url, yadis_url, services) store(manager) return manager end
destroy!()
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 145 def destroy! @session[session_key] = nil end
destroy_manager(force=false)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 127 def destroy_manager(force=false) if !get_manager(force).nil? destroy! end end
get_manager(force=false)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 105 def get_manager(force=false) manager = load if force || manager.nil? || manager.for_url?(@url) return manager else return nil end end
load()
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 141 def load @session[session_key] end
session_key()
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 133 def session_key 'OpenID::Consumer::DiscoveredServices::' + @session_key_suffix end
store(manager)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 137 def store(manager) @session[session_key] = manager end