Class: OpenID::Consumer::DiscoveredServices

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

Overview

A set of discovered services, for tracking which providers have been attempted for an OpenID identifier

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(starting_url, yadis_url, services) ⇒ DiscoveredServices

Returns a new instance of DiscoveredServices.



9
10
11
12
13
14
# 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

Instance Attribute Details

#currentObject (readonly)

Returns the value of attribute current.



7
8
9
# File 'lib/openid/consumer/discovery_manager.rb', line 7

def current
  @current
end

Class Method Details

.from_session_value(value) ⇒ Object



48
49
50
51
52
53
54
55
56
57
# 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

Instance Method Details

#==(other) ⇒ Object



44
45
46
# File 'lib/openid/consumer/discovery_manager.rb', line 44

def ==(other)
  to_session_value == other.to_session_value
end

#empty?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/openid/consumer/discovery_manager.rb', line 28

def empty?
  @services.empty?
end

#for_url?(url) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/openid/consumer/discovery_manager.rb', line 20

def for_url?(url)
  [@starting_url, @yadis_url].member?(url)
end

#nextObject



16
17
18
# File 'lib/openid/consumer/discovery_manager.rb', line 16

def next
  @current = @services.shift
end

#started?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/openid/consumer/discovery_manager.rb', line 24

def started?
  !@current.nil?
end

#to_session_valueObject



32
33
34
35
36
37
38
39
40
41
42
# 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