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)