35 lines
No EOL
969 B
Ruby
35 lines
No EOL
969 B
Ruby
|
|
|
|
module Package
|
|
require_relative "package/daemon"
|
|
require_relative "package/client"
|
|
|
|
ENDPOINT = "ipc:///tmp/zmq-rpc-demo"
|
|
|
|
def self.make(name, scope)
|
|
puts "making package named: #{name} at #{scope}"
|
|
|
|
c = RpcClient.new(ENDPOINT, timeout_ms: 2000)
|
|
begin
|
|
puts "echo => #{c.call("echo", {"hello"=>"world"})}"
|
|
puts "add => #{c.call("add", [1, 2, 3.5])}"
|
|
puts "time => #{c.call("time")}"
|
|
rescue ::Timeout::Error
|
|
warn "RPC timeout: is the daemon running and bound to #{ENDPOINT}?"
|
|
warn "Start it with: ruby daemon.rb (or your systemd service)"
|
|
rescue => e
|
|
warn "RPC error: #{e.class}: #{e.message}"
|
|
ensure
|
|
c.close
|
|
end
|
|
end
|
|
|
|
def self.install(name, scope)
|
|
puts "making package named: #{name} at #{scope}"
|
|
end
|
|
|
|
# gem install ffi-rzmq
|
|
def self.daemon
|
|
start_daemon(ENDPOINT)
|
|
end
|
|
end |