class NationalParks::Park
Attributes
description[RW]
location[RW]
name[RW]
type[RW]
Public Class Methods
all(state_url)
click to toggle source
# File lib/national_parks/park.rb, line 17 def self.all(state_url) #Scrape state parks page and return park names, types, locations, & descriptions self.scrape_parks(state_url) end
new(name, type, location, description)
click to toggle source
# File lib/national_parks/park.rb, line 5 def initialize(name, type, location, description) @name = name @type = type @location = location @description = description end
scrape_parks(state_url)
click to toggle source
# File lib/national_parks/park.rb, line 23 def self.scrape_parks(state_url) parks_page = Nokogiri::HTML(open(state_url)) park_list = parks_page.css("div.col-md-9.col-sm-9.col-xs-12.table-cell.list_left") park_list.each do |park| park_type = park.css("h2").text park_name = park.css("h3").text park_location = park.css("h4").text park_description = park.css("p").text park = self.new(name = park_name, type = park_type, location = park_location, description = park_description) @@all.find {|p| p.name == park.name} || @@all << park end @@all end
state_name(state_url)
click to toggle source
# File lib/national_parks/park.rb, line 12 def self.state_name(state_url) parks_page = Nokogiri::HTML(open(state_url)) #replace with interpolated state url @state_name = parks_page.css("h1.page-title").text.upcase end