Object
Any result of command exection 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 113
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 49
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 67
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 89
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 37
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 29
def input=(filter)
@input = filter
end
# File shell/filter.rb, line 129
def inspect
if @shell.debug.kind_of?(Integer) && @shell.debug > 2
super
else
to_s
end
end
# File shell/filter.rb, line 117
def to_a
ary = []
each(){|l| ary.push l}
ary
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.