class OpenID::Consumer::DiscoveredServices
A set of discovered services, for tracking which providers have been attempted for an OpenID identifier
Attributes
current[R]
Public Class Methods
from_session_value(value)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 48 def self.from_session_value(value) return value unless value.is_a?(Hash) services = value['services'].map{|s| OpenID::OpenIDServiceEndpoint.from_session_value(s) } current = OpenID::OpenIDServiceEndpoint.from_session_value(value['current']) obj = self.new(value['starting_url'], value['yadis_url'], services) obj.instance_variable_set("@current", current) obj end
new(starting_url, yadis_url, services)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 9 def initialize(starting_url, yadis_url, services) @starting_url = starting_url @yadis_url = yadis_url @services = services.dup @current = nil end
Public Instance Methods
==(other)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 44 def ==(other) to_session_value == other.to_session_value end
empty?()
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 28 def empty? @services.empty? end
for_url?(url)
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 20 def for_url?(url) [@starting_url, @yadis_url].member?(url) end
next()
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 16 def next @current = @services.shift end
started?()
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 24 def started? !@current.nil? end
to_session_value()
click to toggle source
# File lib/openid/consumer/discovery_manager.rb, line 32 def to_session_value services = @services.map{|s| s.respond_to?(:to_session_value) ? s.to_session_value : s } current_val = @current.respond_to?(:to_session_value) ? @current.to_session_value : @current { 'starting_url' => @starting_url, 'yadis_url' => @yadis_url, 'services' => services, 'current' => current_val } end