Sha256: d9cdc1158fd27bd00d32b4d91f0d6184b0b191557dfd975682ce3e6a1725ed46
Contents?: true
Size: 872 Bytes
Versions: 13
Compression:
Stored size: 872 Bytes
Contents
require 'irods4r' module IRODS4r # This class proxies a directory in an iRODS environment # class Directory def list() FileEnumerator.new(@dir_name) end def file? return false end def directory? return true end def initialize(dir_name) @dir_name = dir_name end end class FileEnumerator include Enumerable def each() while e = @entries.shift e = e.strip if e.start_with? 'C-' # it's a directory yield Directory.new(e[3 .. -1]) else yield File.new(::File.join(@dir_name, e)) end end end def initialize(dir_name) r = `ils #{dir_name}` @dir_name = dir_name @entries = r.lines.to_a @entries.shift # the first line is the directory name again end end end
Version data entries
13 entries across 13 versions & 1 rubygems