Rubyで起動中のWebrickサーバから変数を取得する方法
Ruby初心者です。RubyでWebrickサーバーを走らせつつ[server.rb]、別ファイル[test.rb]からサーバーで代入している変数を参照したいのですが、別ファイルから変数を参照するたびにサーバーが開いてしまい、変数を参照できません。
グローバル変数やインスタンス変数、定数を使用しても結果は変わりませんでした。
[test.rb]でrequireの代わりにloadやeval File.readを使う方法も試しましたが、やはりサーバーが開いてしまい,サーバーを止めるまで結果が出力されません。サーバーは常に開いておく必要があるので、一定期間ごとに止める方法は使えません。
サーバーに限らず、ループ処理の特定タイミングでその瞬間の状態の変数を取得する場合も同じことが起こると思うのですが、そもそもこのような処理はできないのでしょうか。教えていただけると非常に助かります。
[server.rb]
require 'webrick'
require "json"
s = WEBrick::HTTPServer.new({
Port: 8000,
})
post = Array.new(0)
s.mount_proc('/') do |req, res|
post.push(req.body) #req.bodyはハッシュです
end
Signal.trap('INT'){s.shutdown}
s.start
[test.rb]
require './server.rb'
puts post