Communication between 2 ruby programs

J

Julien Genestoux

Hi!

I am having a hard time solving this issue and I'm sure you guys know
how to treat that very easily!

I've got a "bot" on one side which runs :

class Bot

def self.start
loop do
input = gets # Get a user input from STDIN
# do some stuff with the input!
end
end

Bot:start

end

And on the other side, I've got a Rails application. I want to "plug"
the bot to this rails application, in such a way that the inputs are
coming from the Rails application, and not from STDIN.

I guess that it doesn't change anything that my "client" is a rails app,
but I mentionned it in case it's bad in any way ;-) Also, the
communication is just "one-way"; there is no need for the bot to return
anything to the client!

Any idea on how to solve this?

You're help would be greatly appreciated!

Julien
 
J

James Britt

Julien said:
Hi!

I am having a hard time solving this issue and I'm sure you guys know
how to treat that very easily!

I've got a "bot" on one side which runs :
...


And on the other side, I've got a Rails application. I want to "plug"
the bot to this rails application, in such a way that the inputs are
coming from the Rails application, and not from STDIN.


Have you considered using xml-rpc? Ruby includes a library for that.

It has its pros and cons, but overall it may be good enough.

--
James Britt

www.happycamperstudios.com - Wicked Cool Coding
www.jamesbritt.com - Playing with Better Toys
www.ruby-doc.org - Ruby Help & Documentation
www.rubystuff.com - The Ruby Store for Ruby Stuff
 
J

Julien Genestoux

Hum,

Both applications are on the same machine, so I am not sure I need to go
over the network with XML RPC, I would lose a lot performance wise,
don't you think?

Initially, I tried with Pipes, but I could not find my way with this...

Thanks for your help, anyway.

Anyone else?
 
A

ara.t.howard

And on the other side, I've got a Rails application. I want to "plug"
the bot to this rails application, in such a way that the inputs are
coming from the Rails application, and not from STDIN.



bot = IO.popen 'bot.rb', 'r+'


bot.puts 'some command'
bot.flush


a @ http://codeforpeople.com/
 
J

Julien Genestoux

Correct me if I'm wrong, but popen will "fork" the current process and
run bot.rb in the child.

Actually, here, the bot is already "running" and doing some "other
stuff" that do not require inputs!

Thanks anyway!
 
E

Eric Hodel

I am having a hard time solving this issue and I'm sure you guys know
how to treat that very easily!

I've got a "bot" on one side which runs :

class Bot

def self.start
loop do
input = gets # Get a user input from STDIN
# do some stuff with the input!
end
end

Bot:start

end

And on the other side, I've got a Rails application. I want to "plug"
the bot to this rails application, in such a way that the inputs are
coming from the Rails application, and not from STDIN.

I guess that it doesn't change anything that my "client" is a rails
app,
but I mentionned it in case it's bad in any way ;-) Also, the
communication is just "one-way"; there is no need for the bot to
return
anything to the client!

Any idea on how to solve this?

The RailsRemoteControl gem may be a good start.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top