There's an echo in my head

日々のメモ。

pebbles-suddenly_death gemを入れてみた

RustでHello, worldしようと思ったけどなかなかビルドが終わらないので、待ってる合間にリリースされたpebbles-suddenly_death gemで遊んでみた。

$ gem install pebbles-suddenly_death

メソッドを呼び出すと、処理を行った後に1/100の確率で例外を投げるというもの。

require "pebbles/suddenly_death"

class A
  def self.hello
    puts "Hello from class!"
  end
  def hello
    puts "Hello from instance!"
  end

  include Pebbles::SuddenlyDeath
end

100.times { A.hello }
# => Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Pebbles::SuddenlyDeathError: Pebbles::SuddenlyDeathError

a = A.new
100.times { a.hello }
# => Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Hello from class!
#    Pebbles::SuddenlyDeathError: Pebbles::SuddenlyDeathError

コードをみてみるとメタプログラミングしてあって面白い(ジョークなのにここまでやるか、というよりジョークだからここまでやるのか?)。

rescueしたらちゃんとmessageを表示するとなおよし。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。