From: Payton Swick Date: 2006-03-07T23:15:28+09:00 Subject: Re: Path management in ruby Have you seen the Pathname and Pathname2 modules? They're part of the standard library. They are also platform independant and give you all the features of File, FileUtils, and more. -Payton zimba.tm wrote: > Hi list, > > While playing and coding with ruby, I found it often useful to have a better > way to handle paths that in the actual version. I think it would be nice to > have an unified way to manage paths. > > $:.class => Array > ENV['PATH'] => String > > > class Path < Array > def initialize(path = nil) > if path.kind_of? String > paths = path.split(':') > paths.each do |p| > push p > end > elsif path.kind_of? Array > path.each do |p| > push p > end > end > end > > def find(filename, ext=nil) > each do |path| > filepath = File.join(path, filename) > return filepath if File.exist?( filepath ) > if ext > filepath = File.join(path, filename + ext) > return filepath if File.exist?( filepath ) > end > end > return nil > end > alias :include? find > > # TODO : The join symbol changes between the platforms. Make this dependent > of the platform. > def to_s > join(':') > end > > end > > p = Path.new($:) > p.include? 'ipaddr.rb' > => "/usr/lib/ruby/1.8/ipaddr.rb" > >