Sha256: fc0c52a25d3621b52dd810fba9c863f8ac74ca9a831cefd90a424df44712878a
Contents?: true
Size: 805 Bytes
Versions: 1
Compression:
Stored size: 805 Bytes
Contents
require "open3" class Rbsh::Pipeline < BasicObject attr_writer :_queue def initialize(name, *args, &block) _push(name, *args) end def to_ary commands = _queue.map do |c| [ c[:command], *c[:args] ].compact.map(&:to_s) end result = [] ::Open3.pipeline_rw(*commands) do |stdin, stdout, wait_threads| stdin.close result = stdout.readlines end result << "\n" if result == [] result end def to_s result = to_ary result.join("") end alias inspect to_s alias to_str to_s def equal?(str) to_s == str end def method_missing(name, *args, &block) _push(name, *args) self end protected def _push(name, *args, &block) _queue.push(command: name, args: args) end def _queue @_queue ||= [] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rbsh-0.0.1 | lib/rbsh/pipeline.rb |