Jeremy Woertink
10/11/2007 7:14:00 PM
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"
<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......