lib/rio/ops/file.rb in rio-0.3.7 vs lib/rio/ops/file.rb in rio-0.3.8
- old
+ new
@@ -1,8 +1,8 @@
#--
# ===============================================================================
-# Copyright (c) 2005, Christopher Kleckner
+# Copyright (c) 2005, 2006 Christopher Kleckner
# All rights reserved
#
# This file is part of the Rio library for ruby.
#
# Rio is free software; you can redistribute it and/or modify
@@ -20,11 +20,11 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# ===============================================================================
#++
#
# To create the documentation for Rio run the command
-# rake rdoc
+# ruby build_doc.rb
# from the distribution directory. Then point your browser at the 'doc/rdoc' directory.
#
# Suggested Reading
# * RIO::Doc::SYNOPSIS
# * RIO::Doc::INTRO
@@ -37,29 +37,29 @@
require 'rio/cp'
require 'rio/piper/cp'
require 'rio/ops/either'
+# module RIO
+# module Impl
+# module U
+# def self.copy(s,d)
+# require 'fileutils'
+# ::FileUtils.cp(s.to_s,d.to_s)
+# end
+# def self.rm(s)
+# require 'fileutils'
+# ::FileUtils.rm(s.to_s)
+# end
+# def self.touch(s)
+# require 'fileutils'
+# ::FileUtils.touch(s.to_s)
+# end
+# end
+# end
+# end
module RIO
- module Impl
- module U
- def self.copy(s,d)
- require 'fileutils'
- ::FileUtils.cp(s.to_s,d.to_s)
- end
- def self.rm(s)
- require 'fileutils'
- ::FileUtils.rm(s.to_s)
- end
- def self.touch(s)
- require 'fileutils'
- ::FileUtils.touch(s.to_s)
- end
- end
- end
-end
-module RIO
module Ops
module File
module ExistOrNot
include FileOrDir::ExistOrNot
end
@@ -71,27 +71,31 @@
include Piper::Cp::Input
def selective?
%w[stream_sel stream_nosel].any? { |k| cx.has_key?(k) }
end
+ def empty?()
+ self.selective? ? self.to_a.empty? : self.size == 0
+ end
def rm(*args)
rtn_reset {
- Impl::U.rm(self,*args)
+ fs.rm(self,*args)
}
end
alias :delete :rm
alias :delete! :rm
-
- def touch(*args) rtn_self { Impl::U.touch(self,*args) } end
+ def touch(*args) rtn_self { fs.touch(self.to_s,*args) } end
+ def truncate(sz=0) rtn_reset { fs.truncate(self.to_s,sz) } end
+ def clear() truncate(0) end
end
module NonExisting
include ExistOrNot
include FileOrDir::NonExisting
def rm(*args) rtn_self { ; } end
alias delete rm
alias delete! rm
- def touch(*args) rtn_reset { Impl::U.touch(self,*args) } end
+ def touch(*args) rtn_reset { fs.touch(self,*args) } end
end
end
end
end