Open3
rubyのブロックの使い方について
面白い
メソッドとブロック面白い
ブロックオブジェクトは後から呼び出されるもの。
性質を活かしてメソッドと組み合わせて、ブロックを呼ぶ時に好きなメソッドを与えたりして遊ぶことができる。
また、ガベージコレクションのようにも使える。
ブロックを与えられてたらxxみたいにかけるから、なくてもいいし、あってもいい、みたいに書ける
ブロック理解すると、ライブラリが面白く感じる
def merge_params(params, optional)
params.merge(optional.keep_if { |_key, value| value })
end
%i[get post delete].each do |http_method|
define_method(http_method) do |path, params = {}, optional = {}, &block|
authenticate!
payload = merge_params(params, optional)
resp = connection.send(http_method, path, payload) do |req|
add_authorization(req)
block&.call(req)
end
resp.body
end
end
```