dRuby サンプル

dRuby はネットワーク上で Ruby のオブジェクトを遠隔操作するものです。

ここからコピペしてやってみる。ただし元サイトが右クリックでコピペできないようにしているので、コードをそのまま写しておきます。Linux Mint 18.2, Ruby 2.3.3 で確認。
druby_server.rb

require 'drb/drb'

# 通信を待ち受ける URI
URI = "druby://localhost:8787"

class DrubyServer
  def get_cur_time
    cur_time = Time.now.strftime("%Y年%m月%d日 %H時%M分%S秒")
    msg = "ただいま #{cur_time} です。"
    puts msg
    return msg
  end
end

# リクエストを受け付けるオブジェクト
obj = DrubyServer.new
# サーバの起動
DRb.start_service(URI, obj, safe_level: 1)
# DRb スレッド終了の待ち受け
DRb.thread.join

druby_client.rb

require 'drb/drb'

# 接続先 URI
URI = "druby://localhost:8787"

# リモートオブジェクトの取得
obj = DRbObject.new_with_uri(URI)
# リモートメソッドの呼び出し
puts obj.get_cur_time

 
まず druby_server.rb を端末で実行。で、別の端末で druby_client.rb を実行するたび、サーバの方から現在時刻(正確には obj オブジェクト)が送られてくる。そしてメソッドを実行してそれを表示する。

$ ruby druby_client.rb
ただいま 2017年11月27日 18時04分02秒 です。
$ ruby druby_client.rb
ただいま 2017年11月27日 18時04分07秒 です。

同時にサーバ側でも同じ現在時刻が表示されている。

$ ruby druby_server.rb
ただいま 2017年11月27日 18時04分02秒 です。
ただいま 2017年11月27日 18時04分07秒 です。

 
インターネットにはこのまま出てはいけないそうです。