lib/rio/cp.rb in rio-0.3.3 vs lib/rio/cp.rb in rio-0.3.4
- old
+ new
@@ -77,11 +77,10 @@
end
module Output
include InOut
-
protected
def cpfrom_obj_(obj)
obj.each do |el|
self << el
@@ -117,11 +116,14 @@
else _cpto_rio(arg,:<)
end
self
}
end
+ alias :copy_to :>
+ alias :append_to :>>
private
+
def _cpto_rio(arg,sym)
ario = ensure_rio(arg)
ario = ario.join(self.filename) if ario.dir?
ario.cpclose {
ario = ario.iostate(sym)
@@ -130,14 +132,17 @@
end
ario
}
end
end
+
module Output
include Util::Output
def <<(arg) cpclose { _cpfrom(arg) } end
def <(arg) cpclose { _cpfrom(arg) } end
+ alias :copy_from :<
+ alias :append_from :<<
private
def _cpfrom(arg)
case arg
@@ -162,19 +167,23 @@
module File
module Output
include Util::Output
def <(arg) cpclose { self.iostate(:<) < arg } end
def <<(arg) cpclose { self.iostate(:<<) << arg } end
+ alias :copy_from :<
+ alias :append_from :<<
end
module Input
include Util::Input
def >(arg)
spcp(arg) || cpclose(arg) { self.iostate(:>) > arg }
end
def >>(arg)
spcp(arg) || cpclose(arg) { self.iostate(:>>) >> arg }
end
+ alias :copy_to :>
+ alias :append_to :>>
def copy_as_file?(arg)
arg.kind_of?(Rio) and arg.scheme == 'ftp'
end
def spcp(arg)
if arg.kind_of?(Rio) and arg.scheme == 'ftp'
@@ -182,11 +191,10 @@
self
else
nil
end
end
- alias :copy :>
end
end
end
end
module RIO
@@ -194,16 +202,19 @@
module Open
module Output
include Util::Output
def <(arg) cpclose { self.iostate(:<) < arg } end
def <<(arg) cpclose { self.iostate(:<<) << arg } end
+ alias :copy_from :<
+ alias :append_from :<<
end
module Input
include Util::Input
def >(arg) cpclose(arg) { self.iostate(:>) > arg } end
def >>(arg) cpclose(arg) { self.iostate(:>>) >> arg } end
- alias :copy :>
+ alias :copy_to :>
+ alias :append_to :>>
end
end
end
end
module RIO
@@ -211,10 +222,12 @@
module Dir
module Output
include Util::Output
def <<(arg) _cpfrom(arg); self end
def <(arg) _cpfrom(arg); self end
+ alias :copy_from :<
+ alias :append_from :<<
private
def _cpfrom(arg)
case arg
@@ -223,11 +236,14 @@
end
end
def _cpfrom_rio(ario)
#p callstr('_cpfrom_rio',ario)
dest = self.join(ario.filename)
- if ario.dir?
+ case
+ when ario.symlink?
+ ::File.symlink(ario.readlink.to_s,dest.to_s)
+ when ario.dir?
dest.mkdir
ario.nostreamenum.each do |el|
dest < el
end
else
@@ -249,11 +265,12 @@
when ::Array then cpto_obj_(arg.clear)
else _cpto_rio(ensure_rio(arg))
end
self
end
- alias :copy :>
+ alias :copy_to :>
+ alias :append_to :>>
private
def _cpto_rio(ario)
ario = ario.join(self.filename) if ario.exist?
@@ -282,9 +299,11 @@
self
else
_cpsrc(arg) << arg
end
end
+ alias :copy_from :<
+ alias :append_from :<<
private
def _cpsrc(arg)
if arg.kind_of?(::Array) and !arg.empty? and arg[0].kind_of?(Rio)