Skip to content

Instantly share code, notes, and snippets.

@gusk
Created May 1, 2014 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gusk/f269fdd29ae7e3298f8b to your computer and use it in GitHub Desktop.
Save gusk/f269fdd29ae7e3298f8b to your computer and use it in GitHub Desktop.
class Dogs
POOR = (0..5).to_a.sample
AVERAGE = (6..10).to_a.sample
EXCELLENT = (11..15).to_a.sample
def initialize
joe = {
:name => {:first => "Joe", :last => "Smith"},
:owner_quality => EXCELLENT
}
sarah = {
:name => {:first => "Sarah", :last => "Smith"},
:owner_quality => AVERAGE
}
andrew = {
:name => {:first => "Andrew", :last => "Beter"},
:owner_quality => AVERAGE
}
@dogs = [{:name => "Fido", :size => :large, :owner => joe},
{:name => "Yapper", :size => :small, :owner => joe},
{:name => "Bruiser", :size => :large, :owner => joe},
{:name => "Tank", :size => :huge, :owner => sarah},
{:name => "Beast", :size => :large, :owner => sarah},
{:name => "Harleigh", :size => :medium, :owner => andrew},
{:name => "Trixie", :size => :small, :owner => andrew},]
end
# only edit below this line
def small_dogs
dogs_array = []
@dogs.each do |dog|
if dog[:size] == :small
dogs_array << dog
end
end
dogs_array
end
def huge_dog
huge_dog = []
@dogs.each do |dog|
if dog[:size] == :huge
huge_dog << {name: dog[:name]}
end
end
huge_dog
end
def large_dog_names
large_dogs = []
@dogs.each do |dog|
if dog[:size] == :large
large_dogs << dog[:name]
end
end
large_dogs
end
def joes_large_dogs
joe_dogs = []
@dogs.each do |dog|
owner = dog[:owner][:name][:first] == "Joe"
if owner && dog[:size] == :large
joe_dogs << dog[:name]
end
end
joe_dogs
end
def sizes
dog_sizes = []
@dogs.each do |dog|
dog_sizes << dog[:size]
end
dog_sizes.uniq!
end
def owners
owner_array = []
@dogs.each do |dog|
owners = "#{dog[:owner][:name][:first]} #{dog[:owner][:name][:last]}"
owner_array << owners unless owner_array.include?(owners)
end
owner_array
end
def average_owners
avg_owner = []
@dogs.each do |dog|
if dog[:owner][:owner_quality] == AVERAGE
owner = "#{dog[:owner][:name][:first]} #{dog[:owner][:name][:last]}"
avg_owner << owner unless avg_owner.include?(owner)
end
end
avg_owner
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment