The min method takes an enumerable collection and returns the item that qualifies as the "minimum". For numbers, this is pretty straightforward, and you don't even need to provide any arguments for simple applications. For other objects, however, it's usually necessary to specify a block that will be used to sort the items by whatever criteria you specify.
- View the objects used in these examples
- View these examples as a runnable ruby script on GitHub.
- Practice this method as an interactive kata on Codewars!
Number List
@numbers = [1, 0, 3, 2, 5, 4, 7, 6, 9, 8] # lowest number: @numbers.min #=> 0 # lowest number when negative: @numbers.min{|a,b| 0 - a <=> 0 - b} #=> 9
Pet Inventory
# pet with minimum quantity: @inventory.min.name #=> "rock" # pet with fewest legs: @inventory.min{|a,b| a.legs <=> b.legs}.name #=> "fish"
Pokey Things
# first pokey thing, alphabetically: @pokey_things.seek(0) @pokey_things.min.chomp #=> "cactus" # smallest pokey thing by letter count: @pokey_things.seek(0) @pokey_things.min{|a,b| a.length <=> b.length}.chomp #=> "pole"
Heroku Log File
# heroku request with lowest response time: @requests.min.id #=> 1 # heroku request with lowest service time: @requests.min{|a,b| a.service <=> b.service}.id #=> 8