C0 code coverage information

Generated on Fri Jul 11 15:55:35 -0700 2008 with rcov 0.7.0


Code reported as executed by Ruby looks like this...
and this: this line is also marked as covered.
Lines considered as run by rcov, but not reported by Ruby, look like this,
and this: these lines were inferred by rcov (using simple heuristics).
Finally, here's a line marked as not executed.
Name Total lines Lines of code Total coverage Code coverage
lib/openid/consumer/discovery_manager.rb 123 98
100.0% 
100.0% 
  1 module OpenID
  2   class Consumer
  3 
  4     # A set of discovered services, for tracking which providers have
  5     # been attempted for an OpenID identifier
  6     class DiscoveredServices
  7       attr_reader :current
  8 
  9       def initialize(starting_url, yadis_url, services)
 10         @starting_url = starting_url
 11         @yadis_url = yadis_url
 12         @services = services.dup
 13         @current = nil
 14       end
 15 
 16       def next
 17         @current = @services.shift
 18       end
 19 
 20       def for_url?(url)
 21         [@starting_url, @yadis_url].member?(url)
 22       end
 23 
 24       def started?
 25         !@current.nil?
 26       end
 27 
 28       def empty?
 29         @services.empty?
 30       end
 31     end
 32 
 33     # Manages calling discovery and tracking which endpoints have
 34     # already been attempted.
 35     class DiscoveryManager
 36       def initialize(session, url, session_key_suffix=nil)
 37         @url = url
 38 
 39         @session = session
 40         @session_key_suffix = session_key_suffix || 'auth'
 41       end
 42 
 43       def get_next_service
 44         manager = get_manager
 45         if !manager.nil? && manager.empty?
 46           destroy_manager
 47           manager = nil
 48         end
 49 
 50         if manager.nil?
 51           yadis_url, services = yield @url
 52           manager = create_manager(yadis_url, services)
 53         end
 54 
 55         if !manager.nil?
 56           service = manager.next
 57           store(manager)
 58         else
 59           service = nil
 60         end
 61 
 62         return service
 63       end
 64 
 65       def cleanup(force=false)
 66         manager = get_manager(force)
 67         if !manager.nil?
 68           service = manager.current
 69           destroy_manager(force)
 70         else
 71           service = nil
 72         end
 73         return service
 74       end
 75 
 76       protected
 77 
 78       def get_manager(force=false)
 79         manager = load
 80         if force || manager.nil? || manager.for_url?(@url)
 81           return manager
 82         else
 83           return nil
 84         end
 85       end
 86 
 87       def create_manager(yadis_url, services)
 88         manager = get_manager
 89         if !manager.nil?
 90           raise StandardError, "There is already a manager for #{yadis_url}"
 91         end
 92         if services.empty?
 93           return nil
 94         end
 95         manager = DiscoveredServices.new(@url, yadis_url, services)
 96         store(manager)
 97         return manager
 98       end
 99 
100       def destroy_manager(force=false)
101         if !get_manager(force).nil?
102           destroy!
103         end
104       end
105 
106       def session_key
107         'OpenID::Consumer::DiscoveredServices::' + @session_key_suffix
108       end
109 
110       def store(manager)
111         @session[session_key] = manager
112       end
113 
114       def load
115         @session[session_key]
116       end
117 
118       def destroy!
119         @session[session_key] = nil
120       end
121     end
122   end
123 end

Generated using the rcov code coverage analysis tool for Ruby version 0.7.0.

Valid XHTML 1.0! Valid CSS!