start() ->
spawn( fun() ->
% register( parser, self() ),
process_flag( trap_exit, true ),
Cmd = "ruby parser.rb",
Port = open_port({spawn, Cmd}, [{packet, 4}, nouse_stdio,
exit_status, binary]),
port_loop(Port)
end).
and the parser.rb was
require 'rubygems'
require 'JSON'
require 'erlectricity'
require 'tvtorrent'
receive do |f|
f.when([:parse, String, String, String]) do |mod, user, pass|
case mod
when "tvtorrent"
f.send!([:result, TvTorrent.new( user, pass ).new_fav_torrents.to_json])
when "sleep"
STDERR.puts "Sleeping for #{user} seconds"
sleep user.to_i
f.send!([:result, "Done sleeping"])
else
f.send!([:result, "Unknown module type #{mod}"])
end
f.receive_loop
end
end