Class: TopTravelDestinations::Destination

Inherits:
Object
  • Object
show all
Defined in:
lib/top_travel_destinations/destination.rb

Constant Summary collapse

@@all =
[]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(destination_hash) ⇒ Destination

Returns a new instance of Destination.



6
7
8
9
10
11
# File 'lib/top_travel_destinations/destination.rb', line 6

def initialize(destination_hash)
    destination_hash.each do |attribute_name, attribute_value|
        self.send("#{attribute_name}=", attribute_value)
    end
    save
end

Instance Attribute Details

#attractionsObject

Returns the value of attribute attractions.



2
3
4
# File 'lib/top_travel_destinations/destination.rb', line 2

def attractions
  @attractions
end

#attractions_urlObject

Returns the value of attribute attractions_url.



2
3
4
# File 'lib/top_travel_destinations/destination.rb', line 2

def attractions_url
  @attractions_url
end

#descriptionObject

Returns the value of attribute description.



2
3
4
# File 'lib/top_travel_destinations/destination.rb', line 2

def description
  @description
end

#destination_urlObject

Returns the value of attribute destination_url.



2
3
4
# File 'lib/top_travel_destinations/destination.rb', line 2

def destination_url
  @destination_url
end

#flight_priceObject

Returns the value of attribute flight_price.



2
3
4
# File 'lib/top_travel_destinations/destination.rb', line 2

def flight_price
  @flight_price
end

#locationObject

Returns the value of attribute location.



2
3
4
# File 'lib/top_travel_destinations/destination.rb', line 2

def location
  @location
end

#weather_highObject

Returns the value of attribute weather_high.



2
3
4
# File 'lib/top_travel_destinations/destination.rb', line 2

def weather_high
  @weather_high
end

#weather_lowObject

Returns the value of attribute weather_low.



2
3
4
# File 'lib/top_travel_destinations/destination.rb', line 2

def weather_low
  @weather_low
end

Class Method Details

.allObject



41
42
43
# File 'lib/top_travel_destinations/destination.rb', line 41

def self.all
    @@all
end

.create_from_collection(destinations_array) ⇒ Object



13
14
15
# File 'lib/top_travel_destinations/destination.rb', line 13

def self.create_from_collection(destinations_array)
    destinations_array.each {|destination|  TopTravelDestinations::Destination.new(destination)}
end

.find_by_continent(continent) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/top_travel_destinations/destination.rb', line 23

def self.find_by_continent(continent)
    continents = {
        :africa => ["Morocco"],
        :asia => ["Indonesia", "Cambodia", "Thailand", "Vietnam", "Turkey", "Russia", "United Arab Emirates", "Nepal"],
        :europe => ["United Kingdom", "France", "Italy", "Greece", "Spain", "Czech Republic", "Turkey", "Russia"],
        :north_america => ["New York", "Jamaica", "Bay Islands", "Belize Cayes", "St. Martin", "Mexico", "Cayman Islands"],
        :south_america => ["Brazil", "Peru"],
        :oceania => ["Society Islands"]
    }
    
    continent_sym = continent.gsub(" ", "_").downcase.to_sym

    self.all.select do |destination|
        array_size = destination.location.split(/, |-/).length
        continents[continent_sym].include?(destination.location.split(/, |-/)[array_size - 1])
    end
end

Instance Method Details

#add_attributes(attributes_hash) ⇒ Object



17
18
19
20
21
# File 'lib/top_travel_destinations/destination.rb', line 17

def add_attributes(attributes_hash)
    attributes_hash.each do |attribute_name, attribute_value|
        self.send("#{attribute_name}=", attribute_value)
    end
end

#saveObject



45
46
47
# File 'lib/top_travel_destinations/destination.rb', line 45

def save
    self.class.all << self
end