0

RubyスクリプトでIO.popen( "cmd")を使用して、Ironrubyサブルーチンを実行しています。Ironrubyスクリプトでは、データを取得してハッシュに保存しています。次に、Rubyスクリプトで、x = IO.popen( "Iron ruby​​ script")を使用してハッシュを取得します。問題は、Rubyスクリプトにハッシュを表示できないようです。x.gets、x.readなどを試しました。

IO.popenを使用してこのパイプからハッシュを取得するための最良の方法は何でしょうか?

ありがとう

4

2 に答える 2

1

サブプロセスでは:

require "yaml"
puts YAML.dump(theHash)

親の場合:

require "yaml"
x=IO.popen(...)
theHash=YAML.load(x.read)
于 2012-05-24T19:10:30.323 に答える
0

Rubyには、Ruby用の分散オブジェクトシステムであるdRubyが付属しています。この場合、やり過ぎかもしれません。デモ:

#test1.rb
require 'drb/drb' # in standard lib

the_hash = Hash[:key1,'value1',:key2, 'value2']
DRb.start_service("druby://localhost:8787", the_hash)
DRb.thread.join


#test2.rb
require 'drb/drb'

DRb.start_service
p DRbObject.new_with_uri("druby://localhost:8787")
#=>{:key1=>"value1", :key2=>"value2"}
于 2012-05-24T19:34:48.600 に答える