-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathreduce.rb
executable file
·35 lines (23 loc) · 1.05 KB
/
reduce.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env ruby
require './lib/initialize'
print "sum of all the numbers: "
p @numbers.reduce(:+)
print "multiplying all the numbers: "
p @numbers.reduce{|sum, number| sum * number}
divider
print "count all the legs in the store: "
p @inventory.reduce(0){|sum, pet| sum + (pet.legs * pet.quantity)}
print "animal with highest quantity: "
puts @inventory.reduce{|most_pet, pet| most_pet.quantity > pet.quantity ? most_pet : pet}.name
divider
print "number of words in all pokey things: "
@pokey_things.seek(0)
p @pokey_things.reduce(0){|sum, pokey_thing| sum + pokey_thing.split(/\s+/).size}
print "pokey thing with the most words: "
@pokey_things.seek(0)
puts @pokey_things.reduce{|longest_thing, thing| longest_thing.size > thing.size ? longest_thing : thing}
divider
print "total time to serve all requests: "
p @requests.reduce(0){|sum, request| sum + request.response_time}
print "request with the slowest response time: "
p @requests.reduce{|slowest_request, request| slowest_request.response_time < request.response_time ? slowest_request : request }.id