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.



8
9
10
11
12
13
# File 'lib/openid/consumer/discovery_manager.rb', line 8

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.



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

def current
  @current
end

Class Method Details

.from_session_value(value) ⇒ Object



47
48
49
50
51
52
53
54
55
56
# File 'lib/openid/consumer/discovery_manager.rb', line 47

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 = new(value["starting_url"], value["yadis_url"], services)
  obj.instance_variable_set(:@current, current)
  obj
end

Instance Method Details

#==(other) ⇒ Object



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

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

#empty?Boolean

Returns:

  • (Boolean)


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

def empty?
  @services.empty?
end

#for_url?(url) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#nextObject



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

def next
  @current = @services.shift
end

#started?Boolean

Returns:

  • (Boolean)


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

def started?
  !@current.nil?
end

#to_session_valueObject



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/openid/consumer/discovery_manager.rb', line 31

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