Open3

rubyのブロックの使い方について

toketoke

メソッドとブロック面白い

ブロックオブジェクトは後から呼び出されるもの。
性質を活かしてメソッドと組み合わせて、ブロックを呼ぶ時に好きなメソッドを与えたりして遊ぶことができる。
また、ガベージコレクションのようにも使える。

ブロックを与えられてたらxxみたいにかけるから、なくてもいいし、あってもいい、みたいに書ける

toketoke

ブロック理解すると、ライブラリが面白く感じる

    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
```