class Medusa::PageStore
Public Class Methods
new(storage = {})
click to toggle source
# File lib/medusa/page_store.rb, line 9 def initialize(storage = {}) @storage = storage end
Public Instance Methods
[](index)
click to toggle source
We typically index the hash with a URI, but convert it to a String for easier retrieval
# File lib/medusa/page_store.rb, line 15 def [](index) @storage[index.to_s] end
[]=(index, other)
click to toggle source
# File lib/medusa/page_store.rb, line 19 def []=(index, other) @storage[index.to_s] = other end
delete(key)
click to toggle source
# File lib/medusa/page_store.rb, line 23 def delete(key) @storage.delete key.to_s end
each_value() { |value| ... }
click to toggle source
# File lib/medusa/page_store.rb, line 31 def each_value each { |key, value| yield value } end
has_key?(key)
click to toggle source
# File lib/medusa/page_store.rb, line 27 def has_key?(key) @storage.has_key? key.to_s end
has_page?(url)
click to toggle source
Does this PageStore
contain the specified URL? HTTP
and HTTPS versions of a URL are considered to be the same page.
# File lib/medusa/page_store.rb, line 51 def has_page?(url) schemes = %w(http https) if schemes.include? url.scheme u = url.dup return schemes.any? { |s| u.scheme = s; has_key?(u) } end has_key? url end
touch_key(key)
click to toggle source
# File lib/medusa/page_store.rb, line 41 def touch_key(key) self[key] = Page.new(key) end
touch_keys(keys)
click to toggle source
# File lib/medusa/page_store.rb, line 45 def touch_keys(keys) @storage.merge! keys.inject({}) { |h, k| h[k.to_s] = Page.new(k); h } end
uniq!()
click to toggle source
Removes all Pages from storage where redirect? is true
# File lib/medusa/page_store.rb, line 64 def uniq! each_value { |page| delete page.url if page.redirect? } self end
values()
click to toggle source
# File lib/medusa/page_store.rb, line 35 def values result = [] each { |key, value| result << value } result end