Sha256: 1063cd46d94a321e94f91f24bcc84ab880aced20bad9c29a433750cd0b3247a0

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

require 'folio/fileobject'

module Folio

  class Directory < FileObject

    def initialize(path=nil)
      super(path || Dir.pwd)
      raise FileNotFound unless ::File.directory?(@path)
    end

    def directory?   ; true  ; end

    # We have to use FileUtils here b/c of some obscure
    # secutiry issue.

    # Copy recursively.
    def cp_r(dest)
      util.cp_r(path, dest)
    end

    def rmdir
      util.rmdir(path)
    end
    alias_method :unlink, :rmdir
    alias_method :delete, :rmdir
    undef_method :rm

    def rm_r
      util.rm_r(path)
    end

    def rm_rf(list)
      util.rm_rf(path)
    end

    def chmod_r(mode)
      util.chmod_r(mode, path)
    end
    #alias_method :chmod_R, :chmod_r

    def chown_r(user, group)
      util.chown_r(user, group, path)
    end
    #alias_method :chown_R, :chown_r

    #--
    # ::Dir
    #++

    def chdir(&block)
      ::Dir.chdir(path, &block)
    end
    alias_method :cd, :chdir

    def chroot(&block)
      ::Dir.chroot(path, &block)
    end

    # Directory entries. This returns a list of file names.
    def entries
      ::Dir.entries(path)
    end

    def foreach(&block)
      ::Dir.foreach(path, &block)
    end

    # TODO: use enumerator (?)
    def paths
      (::Dir.entries(path) - ['.', '..']).collect{ |f| FileObject[path, f] }
    end

    # Join paths.
    def /(fname)
      FileObject[path, fname]
    end
    alias_method :+, :/

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
folio-0.1.0 lib/folio/directory.rb