python/ruby question..

bruce bedouglas at earthlink.net
Thu Jun 19 22:10:06 EDT 2008


hey guys...

i managed to solve what i was attempting.. my goal was rather simple, to be
able to have a python script, call a ruby app, and be able to return  a
value from the ruby (child) app to the parent.. blocking/unblocking wasn't
on my radar for now.

ultimately, my goal is to have an app on a master server, with that app
calling the ruby app using the remote functions (rsh/rexec for now).

so, on the master python, i have:
#!/usr/bin/python

#test python script
import re
import os
import sys, string
import os.path
import subprocess

#print "foo"
pp="http://siteanalytics.compete.com/xxxx/?metrics=uv"

a = subprocess.Popen(["/test1/test.rb",pp], stdout=subprocess.PIPE)
aa=a.communicate()[0]
qq=aa.split("\n")
print "qq[8] = ",qq[8]
print "qq[9] = ",qq[9]
print "qq[10] = ",qq[10]
#exit()

and on the child/ruby app:
#! /usr/local/bin/ruby

require 'rubygems'
require '/usr/local/lib/ruby/gems/1.8/gems/firewatir-1.1.1/firewatir'
include FireWatir

a1=ARGV[0]

ff=Firefox.new
ff.goto(a1)
table = ff.table(:id, "dataTable").to_a
#puts table
#puts "blah...."
aa = table[1][1]
puts table[1][1]

#ff.text_field(:name, "q").set("ruby")
#ff.button(:value,"Google Search").click
#puts ff.element_by_xpath("//a[@class='l']").text
#ff.close
#puts "hi there"
#return (33)


this pretty much works as it needs to for now...

like i said.. rather simple, as it should be.

so thanks for the help/suggestions from everyone!



-----Original Message-----
From: python-list-bounces+bedouglas=earthlink.net at python.org
[mailto:python-list-bounces+bedouglas=earthlink.net at python.org]On Behalf
Of Paul McGuire
Sent: Thursday, June 19, 2008 6:27 PM
To: python-list at python.org
Subject: Re: python/ruby question..


On Jun 18, 10:33 pm, "bruce" <bedoug... at earthlink.net> wrote:
> hi...
>
> can someone point me to where/how i would go about calling a ruby app from
a
> python app, and having the python app being able to get a returned value
> from the ruby script.
>

I'm betting that Ruby is similar to Python in that a Ruby interpreter
can be embedded within other applications.  Why not implement
something like ruby_exec(), similar to Python's exec, which takes a
string containing Ruby code, and a dict of variables that can be
accessed and updated from the executed Ruby?  Then no messing around
with subprocess, XMLRPC, firing up processes, etc. - just create the
string and call it.

(Implementation left as an exercise for the reader.)

-- Paul
--
http://mail.python.org/mailman/listinfo/python-list




More information about the Python-list mailing list