From 7aab212d95e03cd296f895aedde9154df704f343 Mon Sep 17 00:00:00 2001 From: Noah Patterson Date: Tue, 26 Nov 2013 21:16:57 +0000 Subject: [PATCH 1/2] add junior method and roll_call print method --- LICENSE => seniors/LICENSE | 0 README.md => seniors/README.md | 0 seniors/student.rb | 80 ++++++++++++++++++++++++++++++++++ student.rb | 30 ------------- 4 files changed, 80 insertions(+), 30 deletions(-) rename LICENSE => seniors/LICENSE (100%) rename README.md => seniors/README.md (100%) create mode 100644 seniors/student.rb delete mode 100644 student.rb diff --git a/LICENSE b/seniors/LICENSE similarity index 100% rename from LICENSE rename to seniors/LICENSE diff --git a/README.md b/seniors/README.md similarity index 100% rename from README.md rename to seniors/README.md diff --git a/seniors/student.rb b/seniors/student.rb new file mode 100644 index 0000000..c3f253c --- /dev/null +++ b/seniors/student.rb @@ -0,0 +1,80 @@ +class Student + + attr_reader :first_name, :last_name, :grade + def initialize(first_name, last_name, grade) + @first_name = first_name + @last_name = last_name + @grade = grade + end + + def senior? + grade == 12 + end + + def junior? + grade == 11 + end + + def to_s + "#{last_name}, #{first_name}" + end +end + +#def seniors(students) +# puts "Seniors: " +# students.select { |student| student.senior? }.each do |senior| +# puts "* #{senior}" +# end +#end + +#def juniors(students) +# puts "Juniors: " +# students.select { |student| student.junior? }.each do |junior| +# puts "* #{junior}" +# end +#end + +#def roll_call(students, grade) +# if ["senior","junior"].include?(grade) +# puts "#{grade.capitalize}:" +# students.select { |student| student.grade? }.each do |stu| # where grade? is either junior? or senior? based on the method param +# puts "* #{stu}" +# end +# else +# puts "Sorry you cannot call that grade" +# end +#end + +def roll_call(students, grade) + puts "#{grade.capitalize}:" + if grade == "senior" + students.select { |student| student.senior? }.each do |stu| + puts "* #{stu}" + end + elsif grade == "junior" + students.select { |student| student.junior? }.each do |stu| + puts "* #{stu}" + end + else + puts "Sorry you cannot call that grade" + end +end + + +fred = Student.new("Fred", "James", 12) +sarah = Student.new("Sarah", "Smith", 12) +jack = Student.new("Jack", "Gong", 11) +all_students = [fred, sarah, jack] + +#seniors(all_students).each do |student| +# puts "* #{student}\n" +#end +#seniors(all_students) +roll_call(all_students, "senior") +roll_call(all_students, "junior") +roll_call(all_students, "freshman") + +#juniors(all_students).each do |student| +# puts "* #{student}\n" +#end +#juniors(all_students) \ No newline at end of file diff --git a/student.rb b/student.rb deleted file mode 100644 index 514cc09..0000000 --- a/student.rb +++ /dev/null @@ -1,30 +0,0 @@ -class Student - - attr_reader :first_name, :last_name, :grade - def initialize(first_name, last_name, grade) - @first_name = first_name - @last_name = last_name - @grade = grade - end - - def senior? - grade == 12 - end - - def to_s - "#{last_name}, #{first_name}" - end -end - -def seniors(students) - students.select { |student| student.senior? } -end - -fred = Student.new("Fred", "James", 12) -sarah = Student.new("Sarah", "Smith", 12) -jack = Student.new("Jack", "Gong", 11) -all_students = [fred, sarah, jack] - -seniors(all_students).each do |student| - puts student -end From 21e7b7da1b8b9ac5c70fabf8191a48cea500244e Mon Sep 17 00:00:00 2001 From: noahpatterson Date: Thu, 28 Nov 2013 10:00:36 -0500 Subject: [PATCH 2/2] rewrite roll_call with "send" and "to_sym" for DRY code --- seniors/student.rb | 68 +++++++++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 25 deletions(-) diff --git a/seniors/student.rb b/seniors/student.rb index c3f253c..18424bb 100644 --- a/seniors/student.rb +++ b/seniors/student.rb @@ -20,6 +20,28 @@ def to_s end end +def roll_call(students,grade) + puts "#{grade.capitalize}:" + if %w(junior senior).include?(grade) + students.select { |student| student.send("#{grade}?".to_sym)}.each do |stu| + puts "* #{stu}" + end + else + puts "Sorry you cannot call that grade" + end +end + +fred = Student.new("Fred", "James", 12) +sarah = Student.new("Sarah", "Smith", 12) +jack = Student.new("Jack", "Gong", 11) +all_students = [fred, sarah, jack] + +%w(senior junior freshman).each do |grade| + roll_call(all_students,grade) +end + +#---------------Old Code Ideas------------# + #def seniors(students) # puts "Seniors: " # students.select { |student| student.senior? }.each do |senior| @@ -45,36 +67,32 @@ def to_s # end #end -def roll_call(students, grade) - puts "#{grade.capitalize}:" - if grade == "senior" - students.select { |student| student.senior? }.each do |stu| - puts "* #{stu}" - end - elsif grade == "junior" - students.select { |student| student.junior? }.each do |stu| - puts "* #{stu}" - end - else - puts "Sorry you cannot call that grade" - end -end - -fred = Student.new("Fred", "James", 12) -sarah = Student.new("Sarah", "Smith", 12) -jack = Student.new("Jack", "Gong", 11) -all_students = [fred, sarah, jack] +# def roll_call(students, grade) +# puts "#{grade.capitalize}:" +# if grade == "senior" +# students.select { |student| student.senior? }.each do |stu| +# puts "* #{stu}" +# end +# elsif grade == "junior" +# students.select { |student| student.junior? }.each do |stu| +# puts "* #{stu}" +# end +# else +# puts "Sorry you cannot call that grade" +# end +# end #seniors(all_students).each do |student| # puts "* #{student}\n" #end #seniors(all_students) -roll_call(all_students, "senior") -roll_call(all_students, "junior") -roll_call(all_students, "freshman") - #juniors(all_students).each do |student| -# puts "* #{student}\n" +# puts "* #{student}\n" #end -#juniors(all_students) \ No newline at end of file +#juniors(all_students) + +# roll_call(all_students, "senior") +# roll_call(all_students, "junior") +# roll_call(all_students, "freshman") +