ヽ(´・肉・`)ノログ

How do we fight without fighting?

Guild使ってみた

Guild使ってみた

資料

自己紹介

./i_make_a_mistake.png

farmnote

./farmnote.png

farmnoteと目黒

./farmnote_tokyo.png

サッポロビーム

私とRuby

./rubykaigi2013.png

私とRuby(2)

./rubima.png

Guild

資料

Motivation

./motivation.png

試してみたい!

Dockerコンテナ作りました

./rubyguild.png

使いかた

$ docker run -it --rm --name my-guild niku/ruby-guild
irb(main):001:0> g1 = Guild.new do
irb(main):002:1*   receive = Guild.receive
irb(main):003:1>   Guild.parent << receive
irb(main):004:1> end
=> #<Guild:0x0000559cc1e87430>
irb(main):005:0> g1 << "hello"
=> nil
irb(main):006:0> p Guild.receive
"hello"
=> "hello"

Guildたぶんこんな風に動く

g1 = Guild.new do
  receive = Guild.receive # 3. ギルドに送られたメッセージを受ける
  double = receive * 2
  Guild.parent << double  # 4. 親で Guild.receive を呼んだときに返る
end # 1. ギルドができる

g1 << "hello" # 2. ギルドに送る。返り値は nil

p Guild.receive # 5. double の値が返るはず

おまけ