superとtapの組み合わせ superの戻り値に手を加えたい時に使えそう
参考 http://d.hatena.ne.jp/lettas0726/20110331/1301578221 https://qiita.com/setsuna82001/items/75d6b1ae7e7d58cd29b7
class H
def hoge
'hoge'
end
def array_print(arr=%w(hoge fuga))
arr
end
end
class F < H
def hoge
super.tap{ |str| str << 'fuga' }
end
def array_print(arr2)
# super()で引数で渡したarr2を使わない
super().tap{ |arr| arr.pop }
end
end
f = F.new
p f.hoge #=> 'hogefuga'
p f.array_print(%w(fuga fuga)) #=> '["hoge"]'