Feedback on new Path Library

I created a new Path library (http://pow.rubyforge.org) that combines
a lot of the functionality of Dir, FileUtils, File and Pathname into
one with a object centered approach. I’m looking for some feedback to
see if people would find this useful, or if I am the only one that get
frustrated when trying to deal with paths in ruby.

Here are some quick example of how it makes things easier…
File.read(File.join(DIR_CONSTANT, “some_text.txt”))
you be written as
Pow[DIR_CONSTANT, "some_text.txt].read

Or if you wanted to to find the number of files in each sub directory
Pathname.new(“/usr/lib/ruby/1.8”).children(true).select {|p|
p.directory?}.collect {|d| d.children.length}
you would do
Pow[“/usr/lib/ruby/1.8”].directories.collect {|d| d.files.length}

Also if you want to create a nested directory structure you can easily
do that.
Pow[“./moar”].create do
Pow[“empty_dir”].create

Pow["sub_dir"].create do
  Pow["info.txt"].create {|file| file.puts "Here is the info you

desired!"}
end
end

would create…
/moar
/empty_dir
/sub_dir
info.txt

It is still a work in progress so any feedback would be great! I
realize this is all just syntactic sugar, but i find it much easier
than using bits of File, Dir, FileUtils and Pathname all over the
place.

Corey

P.S. Why did I call it Pow? Because it was quick to type and all other
path-type names were taken!

On Oct 11, 6:30 pm, “p. Corey” [email protected] wrote:

I created a new Path library (http://pow.rubyforge.org) that combines
a lot of the functionality of Dir, FileUtils, File and Pathname into
one with a object centered approach. I’m looking for some feedback to
see if people would find this useful, or if I am the only one that get
frustrated when trying to deal with paths in ruby.

Congrats. This looks very nice!

Sharon

On Oct 11, 10:30 am, “p. Corey” [email protected] wrote:

I created a new Path library (http://pow.rubyforge.org) that combines
a lot of the functionality of Dir, FileUtils, File and Pathname into
one with a object centered approach. I’m looking for some feedback to
see if people would find this useful, or if I am the only one that get
frustrated when trying to deal with paths in ruby.

What does this do that pathname2 doesn’t do?

http://raa.ruby-lang.org/project/pathname2

Regards,

Dan

I believe these two competing products (hehe ;> ) demonstrate that the
current solutions for the various Pathname.new File FileUtils Dir and so
on are a little bit cumbersome (to use)
I think you can get the basename with File too or, with less typing than
with the Pathname representation?

On Oct 11, 2007, at 17:26 , Marc H. wrote:

I believe these two competing products (hehe ;> ) demonstrate that the
current solutions for the various Pathname.new File FileUtils Dir
and so
on are a little bit cumbersome (to use)
I think you can get the basename with File too or, with less typing
than
with the Pathname representation?

How is FileUtils cumbersome?

I find it easier than using sh due to FileUtils::Verbose and
FileUtils::DryRun. Replacing RubyGems’ setup.rb with a tiny,
debuggable installer was incredibly easy using FileUtils and Dir.

What does this do that pathname2 doesn’t do?

Well, Pow does have the nested directory structure creation, but other
than that they both seem to have similar abilities but with a
different style. To be honest, i didn’t know pathname2 existed when I
started, so I wasn’t trying to rain on anyones parade.

Corey

I find it easier than using sh due to FileUtils::Verbose and
FileUtils::DryRun. Replacing RubyGems’ setup.rb with a tiny,
debuggable installer was incredibly easy using FileUtils and Dir.
First off I totally agree with you here, the FileUtils::DryRun and
FileUtils::Verbose are very helpful over sh to do such things. And Pow
does nothing to emulate that great functionality.

How is FileUtils cumbersome?
Individual FileUtil commands are not cumbersome, but the combination
of them with other methods is. Rarely do I just need mv a predefined
path to a new predefined. First I have to build the src_path using a
combination of File.dirname and File.join, then I have to do the same
with the dest_path as well as mkdir_p’ing it to make sure path
hierarchy exists. When I find myself using FileUtils it usually
involves doing this with multiples files and multiple commands, that’s
where it becomes cumbersome. FileUtils just emulates shell commands,
which are great on the command line but archaic compared to the rest
of ruby’s syntax and style.