Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

successfully completed #108

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 17 additions & 8 deletions letsdrill.rb
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
def get_letter_grade(integer)

#Put your code here!

case integer
when 91..100
"A"
when 81..90
"B"
when 71..80
"C"
when 61..70
"D"
when integer<60
"F"
else
"Invalid Input"
end
Copy link

@sjreich sjreich Sep 28, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, clean solution.

Tackling the invalid inputs is an extra step, but let's talk about the best way to do that. This might be a good case for using a guard clause up front - something like return 'Invalid Input' unless integer.is_a? Integer. But that gets me thinking about what the desired behavior would actually be here. Obviously, this all depends on what sort of broader program this method would appear in, but my hunch is that in most use cases, either returning nil or raising a TypeError would be more helpful than returning a different string.

end

def shortest_string(array)

#Put your code here!

array.sort_by {|string| string.length}[0]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice. Ruby has first, so that is typically preferred to [0] for stylistic reasons. But also, scan through the ruby Enumerable documentation, and see if you can't find a method that is even more fitting than what you have here.

end



### Don't touch anything below this line ###

p "Fetch Letter Grade: You should have 2 trues"
p get_letter_grade(89) == "B"
p get_letter_grade(73) == "C"
Expand Down