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