Forum: Ruby call a ruby script from html

Posted by Mario Ruiz (tcblues)
on 2010-03-24 17:28
I would like to call a ruby script from a html page passing a few
parameters, something like:
<a href="c:/myS/search.rb param1 param2">Search</a>

Anybody knows how to do it?

Thanks.
Posted by Richard Conroy (Guest)
on 2010-03-24 17:58
(Received via mailing list)
Not too sure what you are trying to do here. The fact that you are 
invoking
against your local system is a bit weird, and I dont think that is 
workable.
Might work for locally loaded Javascript, but not in a HREF.

If you are hitting a server, this can be made to work, as CGI (similar 
to
how
you would invoke against a PHP script), but CGI is not a popular way to
run Ruby web apps, and it is very poorly documented in general (its 
eclipsed
by all the other methods).

Again, your parameters would have to be appropriate for a query string, 
you
couldn't
rely on passing them in as command line arguments.

For isntance:

<a href="/scripts/ruby.rb?param1=value1&param2=value2">Search<a>
Posted by Mario Ruiz (tcblues)
on 2010-03-24 18:05
What I'm trying to do is to call a ruby script that admits parameters. 
This program is going to be run locally.
The problem is no parameters are taken since the explorers try to 
download the file instead of running the file.

Another way to solve this would be to run directly the code on the 
page... is that possible?

Thanks
Posted by Mario Antonetti (Guest)
on 2010-03-24 18:06
(Received via mailing list)
On Wed, Mar 24, 2010 at 10:56 AM, Richard Conroy
<richard.conroy@gmail.com>wrote:

> by all the other methods).
>
> >
>
>
> --
> http://richardconroy.blogspot.com



If the ruby script doesn't rely on being run on the server, you could 
try
HotRuby: http://hotruby.yukoba.jp/
Posted by Mario Ruiz (tcblues)
on 2010-03-24 18:16
but in HotRuby only a few implemented methods are allowed. :(
Posted by Richard Conroy (Guest)
on 2010-03-24 18:18
(Received via mailing list)
On Wed, Mar 24, 2010 at 5:05 PM, Mario Ruiz <tcblues@gmail.com> wrote:

> What I'm trying to do is to call a ruby script that admits parameters.
> This program is going to be run locally.
> The problem is no parameters are taken since the explorers try to
> download the file instead of running the file.
>
> Another way to solve this would be to run directly the code on the
> page... is that possible?
>
>
There are a couple of exotic ways to run ruby in your browser. All of 
them
work like
Java applets.

You can Jar up your ruby code with JRuby, and you might be able to 
locally
invoke on
it that way.

A similar method works for IronRuby, to get your Ruby code inside a
silverlight applet.
Posted by Martin Boese (Guest)
on 2010-03-24 23:32
(Received via mailing list)
On Thu, 25 Mar 2010 02:05:10 +0900
Mario Ruiz <tcblues@gmail.com> wrote:

> What I'm trying to do is to call a ruby script that admits
> parameters. This program is going to be run locally.
> The problem is no parameters are taken since the explorers try to 
> download the file instead of running the file.
> 
> Another way to solve this would be to run directly the code on the 
> page... is that possible?
> 
> Thanks

I don't know of any browser what would execute the file, even if
the page was loaded locally....

But running a small local webserver will work. Ruby the code below and
then link to http://localhost:4000/run .

require 'webrick'

class RunScript < WEBrick::HTTPServlet::AbstractServlet
  def do_GET(req, res)
     system("c:/myS/search.rb param1 param2")
     res.status =  200
     res['Content-Type'] = 'text/html'
     res.body = "<h1>Running Program</h1>"
  end
end


server = WEBrick::HTTPServer.new(:Port => 4000)
server.mount("/run",  RunScript)

trap("INT"){ server.shutdown }
server.start
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.