Closed JoshCheek closed 7 years ago
It looks like this each_cons gets run only once, but it's run twice, it's just that the second output is way off the RHS of the screen.
each_cons
$stdin = DATA commands = [["cat"], ["tr", "a", "A"], ["tr", "c", "C"]] pipeline = commands.map do |command| {command: command, stdin: nil, stdout: nil, stderr: $stderr } end pipeline[0][:stdin] = $stdin pipeline[-1][:stdout] = $stdout pipeline.each_cons(2) do |(left, right)| 1 # => 1, 1 left # => {:command=>["cat"], :stdin=>#<File:/var/folders/7g/mbft22555w3_2nqs_h1kbglw0000gn/T/seeing_is_believing_temp_dir20161210-34474-12jx18b/program.rb>, :stdout=>nil, :stderr=>#<IO:<STDERR>>}, {:command=>["tr", "a", "A"], :stdin=>nil, :stdout=>nil, :stderr=>#<IO:<STDERR>>} right # => {:command=>["tr", "a", "A"], :stdin=>nil, :stdout=>nil, :stderr=>#<IO:<STDERR>>}, {:command=>["tr", "c", "C"], :stdin=>nil, :stdout=>#<IO:<STDOUT>>, :stderr=>#<IO:<STDERR>>} end pipeline # => [{:command=>["cat"], # :stdin=> # #<File:/var/folders/7g/mbft22555w3_2nqs_h1kbglw0000gn/T/seeing_is_believing_temp_dir20161210-34474-12jx18b/program.rb>, # :stdout=>nil, # :stderr=>#<IO:<STDERR>>}, # {:command=>["tr", "a", "A"], # :stdin=>nil, # :stdout=>nil, # :stderr=>#<IO:<STDERR>>}, # {:command=>["tr", "c", "C"], # :stdin=>nil, # :stdout=>#<IO:<STDOUT>>, # :stderr=>#<IO:<STDERR>>}] __END__ aaa bbb ccc
Moved to Wiki under https://github.com/JoshCheek/seeing_is_believing/wiki/Potential-future-features
It looks like this
each_cons
gets run only once, but it's run twice, it's just that the second output is way off the RHS of the screen.