Class: RoadtripAdventures::Adventure

Inherits:
Object
  • Object
show all
Defined in:
lib/roadtrip_adventures/adventure.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#nameObject

Returns the value of attribute name.



3
4
5
# File 'lib/roadtrip_adventures/adventure.rb', line 3

def name
  @name
end

#priceObject

Returns the value of attribute price.



3
4
5
# File 'lib/roadtrip_adventures/adventure.rb', line 3

def price
  @price
end

#urlObject

Returns the value of attribute url.



3
4
5
# File 'lib/roadtrip_adventures/adventure.rb', line 3

def url
  @url
end

Class Method Details

.list_adventure_names(destination_name) ⇒ Object



5
6
7
# File 'lib/roadtrip_adventures/adventure.rb', line 5

def self.list_adventure_names(destination_name)
  self.scrape_adventures(destination_name)
end

.scrape_adventures(destination_name) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/roadtrip_adventures/adventure.rb', line 9

def self.scrape_adventures(destination_name)
  new_adventures_list = []

  url = RoadtripAdventures::Destination.url_for_destination_name(destination_name)
  doc = Nokogiri::HTML(open(url))
  adventures = doc.css("article.tours a")

  adventures[0..-2].map.with_index{ |adventure, index| # Returns 6 "adventure" options
  new_adventure = RoadtripAdventures::Adventure.new
  new_adventure.name = adventures[index].css("h3").text
  new_adventure.price = adventures[index].css("span.tour__price").text
  new_adventure.url = adventures[index].attr("href")
  new_adventures_list[index] = new_adventure }
end