1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/shell/filter.rb
knu 718b4e9ea0 * lib/irb/workspace.rb, lib/irb/ext/math-mode.rb,
lib/irb/ext/multi-irb.rb, lib/irb/lc/error.rb,
  lib/irb/lc/help-message, lib/irb/lc/ja/error.rb,
  lib/shell/command-processor.rb, lib/shell/error.rb,
  lib/shell/filter.rb: Fix typos and grammos. [approved by: keiju]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-02-07 19:00:21 +00:00

111 lines
1.7 KiB
Ruby

#
# shell/filter.rb -
# $Release Version: 0.6.0 $
# $Revision$
# $Date$
# by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd)
#
# --
#
#
#
class Shell
#
# Filter
# A method to require
# each()
#
class Filter
include Enumerable
include Error
def initialize(sh)
@shell = sh # parent shell
@input = nil # input filter
end
attr_reader :input
def input=(filter)
@input = filter
end
def each(rs = nil)
rs = @shell.record_separator unless rs
if @input
@input.each(rs){|l| yield l}
end
end
def < (src)
case src
when String
cat = Cat.new(@shell, src)
cat | self
when IO
self.input = src
self
else
Filter.Fail CantApplyMethod, "<", to.class
end
end
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
Filter.Fail CantApplyMethod, ">", to.class
end
self
end
def >> (to)
begin
Shell.cd(@shell.pwd).append(to, self)
rescue CantApplyMethod
Shell.Fail CantApplyMethod, ">>", to.class
end
end
def | (filter)
filter.input = self
if active?
@shell.process_controller.start_job filter
end
filter
end
def + (filter)
Join.new(@shell, self, filter)
end
def to_a
ary = []
each(){|l| ary.push l}
ary
end
def to_s
str = ""
each(){|l| str.concat l}
str
end
def inspect
if @shell.debug.kind_of?(Integer) && @shell.debug > 2
super
else
to_s
end
end
end
end