- Fork this Repository
- Clone YOUR fork
- Compete the activity below
- Push your solution to your fork
- Submit a pull request from your repository to the turingschool-examples repository
- Make sure to put your name in your PR!
Use TDD to create a Passenger
class that responds to the following interaction pattern. For the adult?
method, a Passenger
is considered an adult if they are age 18 or older.
pry(main)> require './lib/passenger'
# => true
pry(main)> charlie = Passenger.new({"name" => "Charlie", "age" => 18})
# => #<Passenger:0x00007fc1ad88b3c0...>
pry(main)> taylor = Passenger.new({"name" => "Taylor", "age" => 12})
# => #<Passenger:0x00007fe0da2cf1b0...>
pry(main)> charlie.name
# => "Charlie"
pry(main)> charlie.age
# => 18
pry(main)> charlie.adult?
# => true
pry(main)> taylor.adult?
# => false
pry(main)> charlie.driver?
# => false
pry(main)> charlie.drive
pry(main)> charlie.driver?
# => true
Use TDD to create a Vehicle
class that responds to the following interaction pattern:
pry(main)> require './lib/vehicle'
# => true
pry(main)> require './lib/passenger'
# => true
pry(main)> vehicle = Vehicle.new("2001", "Honda", "Civic")
# => #<Vehicle:0x00007fe0da9c63d8...>
pry(main)> vehicle.year
# => "2001"
pry(main)> vehicle.make
# => "Honda"
pry(main)> vehicle.model
# => "Civic"
pry(main)> vehicle.speeding?
# => false
pry(main)> vehicle.speed
pry(main)> vehicle.speeding?
# => true
pry(main)> vehicle.passengers
# => []
pry(main)> charlie = Passenger.new({"name" => "Charlie", "age" => 18})
# => #<Passenger:0x00007fe0da1ec450...>
pry(main)> jude = Passenger.new({"name" => "Jude", "age" => 20})
# => #<Passenger:0x00007fe0da2730e0...>
pry(main)> taylor = Passenger.new({"name" => "Taylor", "age" => 12})
# => #<Passenger:0x00007fe0da2cf1b0...>
pry(main)> vehicle.add_passenger(charlie)
pry(main)> vehicle.add_passenger(jude)
pry(main)> vehicle.add_passenger(taylor)
pry(main)> vehicle.passengers
# => [#<Passenger:0x00007fe0da1ec450...>, #<Passenger:0x00007fe0da2730e0...>, #<Passenger:0x00007fe0da2cf1b0...>]
pry(main)> vehicle.num_adults
# => 2
You have been contracted by the National Park Service to create a program that can track revenue for its parks. Specifically, they would like you to implement the following features:
- Each park has a unique name and admission price, as well as a way to read that data
In order to pass this IC, you'll need to have completed all prior requirements, as well as completing at least one of the requirements below. (It's recommended to try to complete all of the below requirements if possible.)
- Each park can list all the vehicles that entered the park
- Each park can list all the passengers that entered the park
- Each park can calculate revenue generated. Revenue is generated by charging the admission price per adult that entered the park.
Build upon your existing code from the first two iterations to implement this functionality. You will end up with the methods below, at minimum you may need additional methods to complete the functionality outlined above.
method | description | return value |
---|---|---|
Park.new("Great Sand Dunes", 30) | Creates a new instance | The new instance, in this example the Park is named "Great Sand Dunes" and has an admission price of 30 |
#vehicles | lists all vehicles that have been added to the Park | Array of Vehicles |
#all_passengers | lists all passengers that are in all vehicles that were added to the park | Array of Passengers |
#revenue | total of admission price per adult that entered the park | Integer |
The National Park Service has given you additional functionality it would like you to implement. They would like to be able to track additional information of passengers that enter their parks. They would like to be able to generate a list of names of all passengers, as well as generate a list of minors and a list of adults. It would like all of these lists to be sorted alphabetically.