Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialGrace Kelly
33,990 PointsRuby Collections Extra Credit
Hey guys I just finished the Ruby Collections course which was awesome!! I did the extra credit and thought I'd share my solution. Instead of a shopping list, I created a simple Pokemon Team Builder with while loops and conditionals, Here's a snapshot of my code: https://w.trhou.se/elsja2kuz9
I'm sure there is a much more elegant way of doing this and I'll probably come back to it once I've learned more Ruby, but this extra credit exercise really helped me retain what I learned on the course...now onwards to Ruby Loops!!
Grace Kelly
33,990 PointsHi Maurice, the "team" value that you are seeing is an argument that I am passing into the print_team method, it's kind of like a placeholder as it's telling the method what to expect. I could have called this argument anything like treehouse or mike but i wanted to name it something relevant to what I was doing. I don't have to declare this team argument value as I will be passing my pokemon_team variable inside the method. This is the process:
I created a method that creates my team, this gives me a hash with the keys "name", "quantity" and "members"
def create_team(team_name, quantity)
hash = {"name" => team_name, "quantity" => quantity, "members" => []}
return hash
end
I create the team variable using this code:
pokemon_team = create_team(team_name, quantity)
Later on in the code I push the pokemon team members into the "members" array, but let's ignore that for now.
The print_team method takes an argument e.g the pokemon_team hash and prints out the information:
#Print Team
def print_team(team)
team_seperator()
puts "Team: #{team["name"]}\n" //outputs the team's name (pokemon_team["name"])
team["members"].each do |member|
puts "\tPokemon: " + member['name'] + "\t\t\t" +
"\tType: " + member['type']
end
team_seperator()
end
and then I pass it into the print_team method as the "team" argument:
print_team(pokemon_team)
Hope that clears things up a bit :)
Maurice Tafolla- Cunningham
7,708 PointsYour explanation was great, thank you very much.
2 Answers
Andrew Stelmach
12,583 PointsWell done!
I wonder why Treehouse doesn't teach TDD though?
Philip Bessa
5,396 PointsTwo months late, but...
They do, in the Rails Development Track. I highly recommend you avoid it entirely though.
David O' Rojo
11,051 PointsFollowing TDD principles, I included tests cases with my program using MiniTest. As at this course we are no using classes and objects, I had to resort to monkey-patch the Kernel
module and also created a couple of new methods to make the testing easier.
If someone wants to look at it, this is the URL: https://teamtreehouse.com/workspaces/21256972
Maurice Tafolla- Cunningham
7,708 PointsMaurice Tafolla- Cunningham
7,708 PointsI am concerned with this bit of code:
Where is the statement that should read "team = __________________"?
I have no idea where you are interpolating the value for ["name"] when you type:
puts "Team: #{team["name"]}\n"
I am really confused because you do not have a "team" variable anywhere in the code and it works just the same as the exercise in the video.
For example in the video they have code that looks like this:
list = create_list() <------ this is what I am looking for in your code.