[#386100] Numeric#coerce docs are disaster — 7stud -- <bbxx789_05ss@...>

num.coerce(numeric) → array

14 messages 2011/08/02

[#386114] Documentation Improvement Proposal — Chris White <cwprogram@...>

= Issues =

24 messages 2011/08/02
[#386115] Re: Documentation Improvement Proposal — Steve Klabnik <steve@...> 2011/08/02

I reeeeeealy dislike user comments on documentation. It's one of the

[#386117] Re: Documentation Improvement Proposal — Phillip Gawlowski <cmdjackryan@...> 2011/08/02

On Tue, Aug 2, 2011 at 7:39 PM, Steve Klabnik <steve@steveklabnik.com> wrote:

[#386118] Re: Documentation Improvement Proposal — Steve Klabnik <steve@...> 2011/08/02

> What's wrong with stealing WikiPedia's procedures? The model works

[#386119] Re: Documentation Improvement Proposal — Chris White <cwprogram@...> 2011/08/02

On Aug 2, 2011, at 11:00 AM, Steve Klabnik wrote:

[#386123] Re: Documentation Improvement Proposal — Steve Klabnik <steve@...> 2011/08/02

Apologies, I've just responded to everyone in-line.

[#386231] Brainstorming ideas how to improve Ruby's documentation — Marc Heiler <shevegen@...>

The title is misleading...

42 messages 2011/08/05
[#386233] Re: Brainstorming ideas how to improve Ruby's documentation — "Fred L." <f.linard@...> 2011/08/05

Hello,

[#386235] Re: Brainstorming ideas how to improve Ruby's documentation — Alexander Litvinovsky <alexander.litvinovsky@...> 2011/08/05

What are you talking about? Ruby has a nice docs, railsapi.com for example.

[#386297] Help out with the next version of ruby-lang.org — Magnus Holm <judofyr@...>

https://github.com/rubylang/ruby-lang.org

11 messages 2011/08/07

[#386341] Exceptional Ruby and Metaprogramming Ruby has anyone picked these up? — Kevin <darkintent@...>

I'm thinking of picking up these two books and was wondering if anyone

11 messages 2011/08/09

[#386378] ruby installation — "Momodou J." <modou75alieu@...>

how to implement this in windows :

16 messages 2011/08/09

[#386401] *WHY* does this not work? — serialhex <serialhex@...>

ok, so code:

23 messages 2011/08/09
[#386403] Re: *WHY* does this not work? — "Darryl L. Pierce" <mcpierce@...> 2011/08/09

On Wed, Aug 10, 2011 at 03:52:59AM +0900, serialhex wrote:

[#386404] Re: *WHY* does this not work? — serialhex <serialhex@...> 2011/08/09

On Tue, Aug 9, 2011 at 3:05 PM, Darryl L. Pierce <mcpierce@gmail.com> wrote:

[#386409] Re: *WHY* does this not work? — Jonathan Nielsen <jonathan@...> 2011/08/09

On Tue, Aug 9, 2011 at 1:11 PM, serialhex <serialhex@gmail.com> wrote:

[#386480] Odd regexp behavior — Glen Holcomb <damnbigman@...>

I'm running 1.9.2-p180

16 messages 2011/08/10

[#386506] Distributing Ruby program as a standalone executable (exe) for windows — Michelle Pace <michelle@...>

Hello there,

10 messages 2011/08/11

[#386539] Online tutor for Ruby — T J Pereira <tj5155@...>

I am finding it difficult to apply the RUBY program. Its because i have

18 messages 2011/08/12
[#386541] Re: Online tutor for Ruby — Phillip Gawlowski <cmdjackryan@...> 2011/08/12

On Fri, Aug 12, 2011 at 6:00 AM, T J Pereira <tj5155@tm.net.my> wrote:

[#386637] class inheritance and class constants — Iñaki Baz Castillo <ibc@...>

------------------------

16 messages 2011/08/14

[#386784] Green Shoes v1.0 released — ashbb <ashbbb@...>

Hello, everyone.

15 messages 2011/08/18
[#392062] Re: Green Shoes v1.0 released — Barry Yu <yubarry@...> 2012/01/09

why do I get this error?

[#386796] Searching in a directory — Yu Yu <htwoo@...>

Hello,

21 messages 2011/08/18

[#386893] Gritty Details of super() — luke gruber <luke.gru@...>

Hey guys,

18 messages 2011/08/21

[#386900] Possble bug in Ruby parser (Fixnum#times within "case" statement) — Iñaki Baz Castillo <ibc@...>

Hi, I cannot find an explanation for the following issue so I think it's a bug:

15 messages 2011/08/21
[#386901] Re: Possble bug in Ruby parser (Fixnum#times within "case" statement) — Ryan Davis <ryand-ruby@...> 2011/08/21

[#386903] Re: Possble bug in Ruby parser (Fixnum#times within "case" statement) — Iñaki Baz Castillo <ibc@...> 2011/08/21

2011/8/22 Ryan Davis <ryand-ruby@zenspider.com>:

[#386920] New to Ruby some problems — jack jones <shehio_22@...>

I am new to Ruby, My mother tongue is C++ .. I have too many problems I

21 messages 2011/08/22

[#386949] Want to get involved with this doc stuff? I'm making it even easier — Steve Klabnik <steve@...>

Hey guys-

9 messages 2011/08/22

[#387058] How the access the values of this result — QAS WM <qaiserwali@...>

I am getting the following as a result of a script I run.

11 messages 2011/08/26

[#387070] overloading methods question please? — jack jones <shehio_22@...>

def do_something(a as Array)

11 messages 2011/08/26

[#387138] String#split resets regex captures variables (Ruby 1.8.7) — Olivier Lance <bestiol@...>

Hi,

10 messages 2011/08/29

[#387196] SAMSUNG to produce "Ruby on Rails in Silicon" System on a Chip — Ilias Lazaridis <ilias@...>

(public draft)

9 messages 2011/08/31

[#387197] Prepend a character to a string in ruby — ruby rails <rubyonrails4me@...>

Hi,

10 messages 2011/08/31

[#387212] GUI programming — Samuel Mensah <sasogeek@...>

Is ruby GUI programming something that will come along as I study ruby

19 messages 2011/08/31
[#387230] Re: GUI programming — Alexey Petrushin <axyd80@...> 2011/08/31

I believe right now it's better to stay with console, there's no Ruby

problem running pipeline

From: Michal Suchanek <hramrach@...>
Date: 2011-08-09 12:57:28 UTC
List: ruby-talk #386372
Hello,

I tried to write a run_pipeline method that would return the exit
status (and stderr) of every process in the pipe.

I am running ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

Inserting a method call by patching in

  somename args
end
def somename args

produces lockup.

I guess I could construct the pipeline in a single method but why
would inserting a method call break otherwise working code is a
mystery.

Any insights welcome.

Thanks

Michal

Code (incomplete but working):

$ cat pipeline.rb
READSIZE = 1024 * 32
def gather_out io, str
    begin
        while true do
            str << (io.readpartial READSIZE)
        end
    rescue EOFError
    end
    str
end

def waiton things
    things.collect{|thing|
        if thing.is_a? Thread then
            thing.join
        else
            Process::waitpid thing
            $?
        end
    }
end

def fork_process cmd, inp_chld, out_chld, err_chld, odd_ends
    pid = fork {
        odd_ends.each{|fd| fd.close}
        STDIN.reopen inp_chld
        STDOUT.reopen out_chld
        STDERR.reopen err_chld
        exec cmd
    }
    inp_chld.close
    out_chld.close
    err_chld.close
    pid
end


def run_pipeline_w cmds
    inp_chld, inp = IO.pipe
    out, out_chld = IO.pipe
    err, err_chld = IO.pipe
    cmd, *cmds = cmds
    if cmds.length == 0 then
        outstr = ""
        errstr = ""
        pid = fork_process cmd, inp_chld, out_chld, err_chld, [inp, out, err]
        threads = [ Thread.new { yield inp ; inp.close},
        Thread.new { gather_out out, outstr },
        Thread.new { gather_out err, errstr } ]
        ret, *_ = waiton [pid] + threads
    else
        raise "FIXME"
    end
    [outstr,errstr,ret]
end

$ cat tc_pipeline.rb
require 'pipeline'
require 'test/unit'
require 'stringio'

class TestPipeline < Test::Unit::TestCase
    def setup
        # none
        @data_lines = 1000
        @data_text = "%i some data"
        @inp = StringIO.new
        output_data @inp
        @inp.rewind
        @inp = @inp.read
    end
    def output_data io
        (1..@data_lines).each {|i| io.puts(@data_text % i) }
    end
    def teardown
        # none
    end

    def test_cat
        out, err, ret = run_pipeline_w( ["cat"] ){|io| output_data io
rescue nil}
        assert_equal ret, 0
        assert_equal @inp, out
        assert_equal err, ""
    end

    def test_doublecat
        out, err1, ret1, err2, ret2 = run_pipeline_w( ["cat","cat"]
){|io| output_data io rescue nil}
        assert_equal ret1, ret2, 0
        assert_equal @inp, out
        assert_equal err1, err2, ""
    end
end

Patch (in my eyes noop but breaking):
diff --git a/pipeline.rb b/pipeline.rb
index 73cb91b..9ef7630 100644
--- a/pipeline.rb
+++ b/pipeline.rb
@@ -38,6 +38,9 @@ end
 def run_pipeline_w cmds
     inp_chld, inp = IO.pipe
     out, out_chld = IO.pipe
+    run_pipeline_w_ios cmds, inp, out, inp_chld, out_chld, [inp, out], []
+end
+def run_pipeline_w_ios cmds, inp, out, inp_chld, out_chld, odd_ends,
threads = []
     err, err_chld = IO.pipe
     cmd, *cmds = cmds
     if cmds.length == 0 then

In This Thread

Prev Next