On Jul 20, 2010, at 10:08 AM, James O'Brien wrote:

> File.open('myfile') do |f|
>    puts f.basename;
> end
>
> myfile exists on the filesystem but this code blows up with
>
> undefined method `basename'
>
> could someone explain why (given the docs
> http://ruby-doc.org/core/classes/File.html
> advertise the basename method)
>
> [ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]]
>
>
> Thanks!


You're looking at the docs for the class method File.basename, but  
you're calling basename on an instance of File referenced by f

puts File.basename('myfile')

or better:

puts File.basename('/some/long/path/to/myfile')

-Rob

Rob Biedenharn		
Rob / AgileConsultingLLC.com	http://AgileConsultingLLC.com/
rab / GaslightSoftware.com		http://GaslightSoftware.com/