最後に必ず実行するメソッドを実行し忘れ防止

CSV#open みたいにclose処理を内包しているような書き方。

class Mover
  def initialize(from: , to: , &blick)
    @from = from
    @to = to
    yield(self)
    save
  end

  def playeds
    @from = @from + "適当"
  end

  def favorites
    @from = @from + "j"
  end

  def save
    puts "hey siri"
  end
end
Mover.new(from: "2", to: "1") do |m|
  m.favorites
  m.playeds
end

Mover.new(from: "2", to: "1") do |m|
  m.favorites
end

お約束な的な命令が必須な使い方になっている場合は、書き忘れによってバグを生みやすいしのでこういうの使っていきたい。