From: "JeremyWoertink@..." Date: 2007-10-12T04:13:48+09:00 Subject: Re: I need some help plz with my ruby project. oh, and also, take out the collect on s1.each_grade and try just passing a block to each_grade so irb(main):009:0> s1.each_grade { |course| puts course[2] } nil => {"22c:021"=>["22c:021", "Computer Science I", "B-"]} HTH ~Jeremy On Oct 11, 12:04 pm, "JeremyWoert...@gmail.com" wrote: > well, to start I noticed a few syntax errors, yield is misspelled, and > in the line s1.each_grade.collect { |course| do course[2] } I don't > know what you were trying to do with 'do course[2]' maybe yield > course[2] and your get_grade method has c[Grade] but I don't know what > Grade is, so maybe it should be > def get_grade(code, Grade) > (c=@courses[code]) && c[Grade] > end > > maybe that might help a little > > ~Jeremy > > On Oct 11, 11:10 am, wiz_penda...@yahoo.com wrote: > > > First, i need to extend the student class, and its to be enumerable by > > courses. Then, show off the new functionality supported by this > > change by writing an expression that returns a list of all of the > > grades a student has earned in the courses he or she has completed for > > the major. > > > here is what I got so far...what am i missing > > ----------------------------------------------------------------------------------------------------------------- > > irb > > > # This class initializes a new student with ID, > > # and shows a list of completed courses, > > # and also shows a list of grades from completed courses. > > class Student > > > include Enumerable > > > attr_reader :name, :id > > > # Initializing the students name and ID. > > # Name = Student's name. > > # ID = Student's ID. > > # Initializing courses to equal a new hash. > > def initialize(name, id) > > @name = name > > @id = id > > @courses = {} > > end > > > # Adding a course to the set of those completed. > > def add_course(code, name, grade) > > @courses[code] = [code, name, grade] > > end > > > # Retrieving the grade for a particular course. > > def get_grade(code) > > (c=@courses[code]) && c[Grade] > > end > > > # Changing the grade for a course completed. > > def set_grade(code, grade) > > @courses[code][Grade] = grade > > end > > > # Providing a list of all of the courses completed. > > def list_courses > > @courses.values > > end > > > def each_grade > > @courses.each { |course| yeild course } > > end > > end > > > s1 = Student.new("Eric", "00101") > > s1.add_course("22c:021", "Computer Science I", "B-") > > s1.each_grade.collect { |course| do course[2] } > > puts s1 > > ------------------------------------------------------------------------------------------------------------ > > if you help meh out soon it would be great...thanks and later......