Forum: Ruby Attaching a script to IO

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ari B. (Guest)
on 2007-07-24 22:49
(Received via mailing list)
Hey all,
     I'm trying to attach a script's output to IO (a socket. Is IO
the right term?)
I currently use a GServer script to accept connections from localhost.

I don't know if that made sense, but is there any way to change the
default output to my socket output?

Thanks,
---------------------------------------------------------------|
~Ari
ruby 1.8.6 (2007-03-13 patchlevel 0) [powerpc-darwin8.10.0]
Ari B. (Guest)
on 2007-07-24 23:13
(Received via mailing list)
Oh, and if it makes a difference, information on using sockets with
Highline (Thanks, james!) would be GREATLY appreciated.


On Jul 24, 2007, at 2:48 PM, Ari B. wrote:

> ~Ari
> ruby 1.8.6 (2007-03-13 patchlevel 0) [powerpc-darwin8.10.0]

-------------------------------------------|
Nietzsche is my copilot
Michael G. (Guest)
on 2007-07-24 23:23
(Received via mailing list)
On Wed, Jul 25, 2007 at 03:48:11AM +0900, Ari B. wrote:
> Hey all,
>     I'm trying to attach a script's output to IO (a socket. Is IO
> the right term?)

Works for me!

> I currently use a GServer script to accept connections from localhost.

Well, can you just send whatever you need to send via puts?

Example:

class MyThingy < GServer
  def initialize(port=3000, *args)
    super(port, *args)
  end
  def serve(io)
    io.puts "Hello!"
  end
end
Ari B. (Guest)
on 2007-07-24 23:39
(Received via mailing list)
On Jul 24, 2007, at 3:21 PM, Michael G. wrote:
>   end
> end

Well, except I'm not trying to send "hello". I'm trying to keep my
script nice and clean, so I have a bunch of ugly code in a separate
file (which I call with require) and a method test().  If I pass io
as an argument with test:

def serve(io)
     test(io)
end

and then later in test(io) have

io.puts

will the variable scope allow that?

Or should I find a way to reroute $stdout?

thanks,
ari
-------------------------------------------|
Nietzsche is my copilot
Robert K. (Guest)
on 2007-07-25 01:26
(Received via mailing list)
On 24.07.2007 21:39, Ari B. wrote:
>>   def serve(io)
>     test(io)
> end
>
> and then later in test(io) have
>
> io.puts
>
> will the variable scope allow that?
>
> Or should I find a way to reroute $stdout?

It seems you want your script to act as a _server_.  In that case class
TCPServer will help you.  Please have a look:

http://www.ruby-doc.org/docs/ProgrammingRuby/html/...

Kind regards

  robert
This topic is locked and can not be replied to.