Class: OpenID::Consumer::DiscoveryManager

Inherits:
Object
  • Object
show all
Defined in:
lib/openid/consumer/discovery_manager.rb

Overview

Manages calling discovery and tracking which endpoints have already been attempted.

Instance Method Summary collapse

Constructor Details

#initialize(session, url, session_key_suffix = nil) ⇒ DiscoveryManager

Returns a new instance of DiscoveryManager.



63
64
65
66
67
68
# 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

Instance Method Details

#cleanup(force = false) ⇒ Object



92
93
94
95
96
97
98
99
100
101
# 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_serviceObject



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# 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