Support for the Ruby 2.4 series has ended. See here for reference.
Object
Any result of command execution is a Filter.
This class includes Enumerable, therefore a Filter object can use all Enumerable facilities.
Outputs filter1, and then filter2 using Join.new
 
               # File shell/filter.rb, line 114
def +(filter)
  Join.new(@shell, self, filter)
end
             
            Inputs from source, which is either a string of a file name or an IO object.
 
               # File shell/filter.rb, line 50
def <(src)
  case src
  when String
    cat = Cat.new(@shell, src)
    cat | self
  when IO
    self.input = src
    self
  else
    Shell.Fail Error::CantApplyMethod, "<", to.class
  end
end
             
            Outputs from source, which is either a string of a file name or an IO object.
 
               # File shell/filter.rb, line 68
def >(to)
  case to
  when String
    dst = @shell.open(to, "w")
    begin
      each(){|l| dst << l}
    ensure
      dst.close
    end
  when IO
    each(){|l| to << l}
  else
    Shell.Fail Error::CantApplyMethod, ">", to.class
  end
  self
end
             
            Appends the output to source, which is either a string of a file name or an IO object.
 
               # File shell/filter.rb, line 90
def >>(to)
  begin
    Shell.cd(@shell.pwd).append(to, self)
  rescue CantApplyMethod
    Shell.Fail Error::CantApplyMethod, ">>", to.class
  end
end
             
            Iterates a block for each line.
 
               # File shell/filter.rb, line 38
def each(rs = nil)
  rs = @shell.record_separator unless rs
  if @input
    @input.each(rs){|l| yield l}
  end
end
             
             
               # File shell/filter.rb, line 30
def input=(filter)
  @input = filter
end
             
             
               # File shell/filter.rb, line 130
def inspect
  if @shell.debug.kind_of?(Integer) && @shell.debug > 2
    super
  else
    to_s
  end
end
             
             
               # File shell/filter.rb, line 118
def to_a
  ary = []
  each(){|l| ary.push l}
  ary
end