`tap` ile detayları görmek

Zincir işlem yaparken içeride nelerin olup bittiğini anlamak için tap method’unu kullanabiliriz. Object nesnesinden geldiği için diğer tüm tiplerde de bu method bulunur:

(0...8)                  .tap{ |x| puts "(1..10):  #{x.inspect}" }
  .to_a                  .tap{ |x| puts ".to_a:    #{x.inspect}" }
  .select{|x| x % 3 == 0}.tap{ |x| puts ".select:  #{x.inspect}" }
  .map{ |x| x ** x }     .tap{ |x| puts ".map:     #{x.inspect}" }

# >> (1..10):  0...8
# >> .to_a:    [0, 1, 2, 3, 4, 5, 6, 7]
# >> .select:  [0, 3, 6]
# >> .map:     [1, 27, 46656]