class RetroCasts::Website

Attributes

site_cache[R]

Public Class Methods

new(cache = {}) click to toggle source
# File lib/retro_casts/website.rb, line 6
def initialize(cache = {})
  @site_cache = cache
end

Public Instance Methods

get_list(url, filter) click to toggle source
# File lib/retro_casts/website.rb, line 10
def get_list(url, filter)
  if site_cache.has_key?(url)
    site_cache[url]
  else
    site = open_url(url)
    page = css(site, filter)
    add_to_cache(url, page)
    page
  end
end

Private Instance Methods

add_to_cache(url, page) click to toggle source
# File lib/retro_casts/website.rb, line 22
def add_to_cache(url, page)
  site_cache[url] = page
end
css(site, filter) click to toggle source
# File lib/retro_casts/website.rb, line 34
def css(site, filter)
  begin
    Nokogiri::HTML(site).css(filter)
  rescue Nokogiri::CSS::SyntaxError
    NullWebsite.new
  end
end
open_url(url) click to toggle source
# File lib/retro_casts/website.rb, line 26
def open_url(url)
  begin
    open(url)
  rescue Errno::ENOENT
    NullWebsite.new
  end
end