class NCUA::CreditUnion::Scraper

Public Class Methods

new(charter_number) click to toggle source

This bit is as brittle as glass, as coupled as conjoined twins, and as stinky as bad cheese

# File lib/ncua/credit_union/scraper.rb, line 5
def initialize(charter_number)
  @charter_number = charter_number
end

Public Instance Methods

scrape!() click to toggle source
# File lib/ncua/credit_union/scraper.rb, line 9
def scrape!
  Hash[html_doc.at_css("table#MainContent_newDetails").css("tr").map do |tr|
    if tr.at_css("td.dvHeader") && tr.at_css("td.dvHeader + td")
      [clean_header(tr.at_css("td.dvHeader").text), clean_value(tr.at_css("td.dvHeader + td").text)]
    end
  end]
end

Private Instance Methods

clean_header(text) click to toggle source
# File lib/ncua/credit_union/scraper.rb, line 19
def clean_header(text)
  text.gsub(/[,:]/,"").
    gsub("/", " or ").
    gsub(" ","_").
    downcase.
    to_sym
end
clean_value(text) click to toggle source
# File lib/ncua/credit_union/scraper.rb, line 27
def clean_value(text)
  text.gsub(/[\n\r]/,"").strip
end
html_doc() click to toggle source
# File lib/ncua/credit_union/scraper.rb, line 31
def html_doc
  Nokogiri::HTML(request.body)
end
request() click to toggle source
# File lib/ncua/credit_union/scraper.rb, line 35
def request
  @request ||= DetailsClient.new.get_details(@charter_number)
end