You can use Emit in other languages through the multilang API.
We’re going to define a node that takes a number and emits each integer in that range. Let’s do it with Ruby! (why not?)
require "json"
message = JSON.parse(STDIN.read)
message["count"].times do |i|
puts i.to_json
end
(the equivalent in Python is in examples/multilang/test.py)
The messages passed in and out are expected to be in JSON format. Output from the functions should be json strings separated by newlines.
We’ll be subclassing emit.multilang.ShellNode to tell emit how to execute our task:
@router.node(('n',))
class RubyShellNode(ShellNode):
command = 'bundle exec ruby test.rb'
After that, you can call your node and subscribe as normal.