Code_review

Saw some code here and modified it a bit.

employee = Struct.new(:name, :age, :role, :salary)

employees = [
  employee.new('Jane', 34, :designer,   75_000),
  employee.new('John', 29, :developer,  90_000),
  employee.new('Jill', 38, :developer,  80_000)
]

puts employees.select { it.role == :developer }
              .map { it.salary }
              .tap { p 'After map: %s' % [it] }
              .sum

#             => "After map: [90000, 80000]"
#             => 170000
puts employees.select { it.role == :developer }
              .map { it.age }
              .tap { p 'After map: %s' % [it] }
              .then { '%.2f' % [it.sum.fdiv(it.size)] }

#             => "After map: [29, 38]"
#             => 33.50