class NCUA::CreditUnion::ScraperValidator
Public Instance Methods
schema_valid?()
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 4 def schema_valid? has_a_table? && has_correctly_formatted_key_value_rows? && has_correct_keys? end
Private Instance Methods
has_a_table?()
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 12 def has_a_table? !html_doc.at_css('table#MainContent_newDetails').nil? end
has_correct_keys?()
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 22 def has_correct_keys? found_keys = key_value_rows.map { |tr| tr.at_css('td.dvHeader') }.compact.map(&:text) expected_keys = ["Credit Union Name:", "Charter Number:", "Credit Union Type:", "Credit Union Status:", "Corporate Credit Union:", "Credit Union Charter Year:", "Current Charter Issue Date:", "Date Insured:", "Charter State:", "Region:", "Field of Membership Type:", "Low Income Designation:", "Member of FHLB:", "Assets:", "Peer Group:", "Number of Members:", "Address:", "City, State Zip code:", "Country:", "County:", "Phone:", "Website:", "CEO/Manager:"] found_keys == expected_keys end
has_correctly_formatted_key_value_rows?()
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 16 def has_correctly_formatted_key_value_rows? key_value_rows.all? { |tr| key_value_row?(tr.css("td")) || sub_header_row?(tr.css("td")) } end
html_doc()
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 47 def html_doc @html_doc ||= Nokogiri::HTML(request.body) end
key_value_row?(tr_cells)
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 35 def key_value_row?(tr_cells) tr_cells.count == 2 && tr_cells.first[:class] == 'dvHeader' end
key_value_rows()
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 51 def key_value_rows @key_value_rows ||= html_doc.at_css("table#MainContent_newDetails").css("tr") end
request()
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 43 def request @request ||= DetailsClient.new.get_details(42) end
sub_header_row?(tr_cells)
click to toggle source
# File lib/ncua/credit_union/scraper_validator.rb, line 39 def sub_header_row?(tr_cells) tr_cells.count == 1 && tr_cells.first[:class] == 'subheader' end