class WebsiteInspector::Website
Attributes
body[RW]
html[RW]
links[RW]
page[RW]
search_terms[RW]
site_data[RW]
title[RW]
url[RW]
Public Class Methods
clean_input(search_terms)
click to toggle source
# File lib/website_inspector/website.rb, line 36 def self.clean_input search_terms terms = Array.new search_terms.each do |term| term = term.to_s.gsub(",", "") terms << term end terms end
console_print(section_name)
click to toggle source
# File lib/website_inspector/website.rb, line 61 def self.console_print section_name puts "---------------------------\nSEARCHING #{section_name}" end
search(data)
click to toggle source
# File lib/website_inspector/website.rb, line 45 def self.search data no_match = true sections = data.scan /\S.{1,80}(?!\S)/ sections.each do |section| matches = section.scan(@regex_search) if !matches.empty? no_match = false puts "While scanning: '#{section}'" puts "found: #{matches.join(', ')}\n" end end if no_match puts "No matches found for: #{@search_terms.join(', ')}\n" end end
search_all()
click to toggle source
# File lib/website_inspector/website.rb, line 65 def self.search_all @site_data.each do |k, v| Website.console_print "#{k}" Website.search v.to_s.downcase end end
search_type(key)
click to toggle source
# File lib/website_inspector/website.rb, line 72 def self.search_type key Website.console_print "#{key}" value = @site_data[key] if value.kind_of? Array value.each do |v| Website.search v.to_s.downcase end else Website.search value.to_s.downcase end end
start(website_url, search_terms)
click to toggle source
# File lib/website_inspector/website.rb, line 9 def self.start website_url, search_terms agent = Mechanize.new @search_terms = clean_input search_terms @regex_search = Regexp.union(@search_terms) @website_url = Website.validate_url website_url @site_data = Hash.new @site_data["PAGE"] = @page = agent.get(@website_url) # Mechanize Page @site_data["TITLE"] = @title = @page.title # String @site_data["HTML/XML"] = @html = @page.parser # Nokogiri HTML @site_data["WEBPAGE SOURCE"] = @source = @page.body # String @site_data["LINKS"] = @links = @page.links # Array @site_data["IMAGES"] = @images = @page.images @site_data["IMAGE URLS"] = @image_urls = @page.image_urls @site_data["PAGE FORMS"] = @forms = @page.forms end
validate_url(website_url)
click to toggle source
# File lib/website_inspector/website.rb, line 27 def self.validate_url website_url site = website_url.chomp(",") #get rid of trailing commas uri = URI(site) if uri.instance_of?(URI::Generic) uri = URI::HTTP.build({:host => uri.to_s}) end uri end