Skip to content

Instantly share code, notes, and snippets.

@amy-mac
Forked from featherart/gist:6734826
Last active December 24, 2015 03:09
Show Gist options
  • Save amy-mac/6735106 to your computer and use it in GitHub Desktop.
Save amy-mac/6735106 to your computer and use it in GitHub Desktop.
# ,o888888o. 8 8888 88 8 8888 8888888888',8888'
# . 8888 `88. 8 8888 88 8 8888 ,8',8888'
# ,8 8888 `8b 8 8888 88 8 8888 ,8',8888'
# 88 8888 `8b 8 8888 88 8 8888 ,8',8888'
# 88 8888 88 8 8888 88 8 8888 ,8',8888'
# 88 8888 `8. 88 8 8888 88 8 8888 ,8',8888'
# 88 8888 `8,8P 8 8888 88 8 8888 ,8',8888'
# `8 8888 ;8P ` 8888 ,8P 8 8888 ,8',8888'
# ` 8888 ,88'8. 8888 ,d8P 8 8888 ,8',8888'
# `8888888P' `8. `Y88888P' 8 8888 ,8',8888888888888
#
# This is our first week's !quiz Let's find out what we know.
#
# The ideal range of your motor cycle speed 20 - 55. Over 55 is SCAREE!
# Check if your moto_speed is within that range using boolean (&&, ||)
# operators and comparison operators (== =< >= !=)
# if your moto_speed variable is in the right range print out a good
# message, aka "Wheee!" Otherwise print out an appropriate response.
# Your code goes below:
moto_speed = 60
if moto_speed >= 20 && moto_speed <= 55
puts "Whee! We're cruising along at #{moto_speed} mph."
elsif moto_speed < 20
puts "Umm...going a little slow, aren't we?"
else
puts "AAAAAAAHHHHHHH! We're all gonna die!"
end
# Make a method that checks your moto speed when called
def check_speed(mph)
if mph >= 20 && mph <= 55
puts "Whee! We're cruising along at #{mph} mph."
elsif mph < 20
puts "Umm...going a little slow, aren't we?"
else
puts "AAAAAAAHHHHHHH! We're all gonna die!"
end
end
check_speed(moto_speed )
# Make a method to start your bike! It should print out "vrooom!"
# when it's called
# your code below:
def moto_start
puts 'Vrooom!'
end
# You're the leader of the pack.
# Create an Array of 3 motorcycle makes!
my_convoy = %w(Triumph Harley Honda)
# Loop through your convoy and print out each motorcycle's make
# Your code below:
my_convoy.each do |bike|
puts bike
end
# You need to keep track of your gang.
# Create 3 separate Hashes containing riders' info. like so:
# fred = { name, helmet, height }
# Then a larger Hash containing all riders
# my_gang = {rider hashes}
jim = {
name: 'Jim MacKinnon',
helmet: 'black',
height: "5'9\""
}
steve = {
name: 'Steven Sloan',
helmet: 'bandana',
height: "5'9\""
}
amy = {
name: 'Amy Higgins',
helmet: 'red',
height: "5'2\""
}
my_gang = { jim: jim, steve: steve, amy: amy}
# Loop through your gang and print out each rider's
# name & helmet color using a block. Your code below:
my_gang.each do |k,v|
puts "Name: #{v[:name]}, Helmet: #{v[:helmet]}"
end
# Now for each rider add their motorcycle to their Hash,
# assume they are in the same order as your Array
# use a loop. Your code below:
i = 0
my_gang.each do |k, v|
v[:moto] = my_convoy[i]
i += 1
end
# Define an Class to represent each gang member
# It should include methods to set their name and motorcyle make
# When say_name(name) is called the rider's name is printed out
class Rider
attr_accessor :name, :moto_model
def initialize(name, moto_model)
@name = name
@moto_model = moto_model
end
def say_name
puts @name
end
end
# A fellow student is noticing that instances of his new Foo class are missing
# their @bar instance variable
class Foo
attr_reader :bar
def initialize(bar)
@bar = bar
end
end
foo = Foo.new('value of bar')
foo.bar # TODO value is missing!
# Fix this code so it prints “hello”
class Bar
def hello
puts 'hello'
end
end
bar = Bar.new
bar.hello
# Final Challenge:
# 1. initialize 3 new instances of class Rider
# 2. add these to a new Hash
# 3. loop through the riders Hash and call say_name for each rider.
# Hint: you will need an attr_accessor in Rider to call it's method
# Your code below:
tom = Rider.new('Tom', 'Harley')
dick = Rider.new('Dick', 'Harley')
harry = Rider.new('Harry', 'Crotch Rocket')
new_riders = {
tom: tom,
dick: dick,
harry: harry
}
new_riders.each do |key, value|
value.say_name
end
@featherart
Copy link

Well done! It looks like you've really got the concepts we went over this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment