On 7/1/07, 12 34 <rubyforum / web.knobby.ws> wrote:
> yermej / gmail.com wrote:
> > On Jun 30, 11:00 pm, 12 34 <rubyfo... / web.knobby.ws> wrote:
> >> I want to see if any element of an array is equal to a file extension
> >>
> >
> > I would use Array's include? method:
> >
> > ext_not_to_move = ['jpg', 'pdf', 'mrw']
> > if ext_not_to_move.include? File.extname(fn).downcase
> >   # do stuff
> > end
> >
> > Jeremy
>
> As I said, this appealed to me, but it's not working and now that I look
> at it more it didn't make sense to this Ruby newbie.
>
> if ext_not_to_move.include? File.extname(fn).downcase
>
> It probably is OK, but I wasn't sure of the syntax (although I don't get
> an error). So I changed it to
>
> if extNot2move.include?(File.extname(fn).downcase)
>
> But this is always false. This construct has the advantage I could
> puts #{extNot2move.include?(File.extname(fn).downcase)}
>
> I've puts the File.extname(fn).downcase seperately, and it looks good to
> me. I have some that should be true.
>
> Partial output (::: are not Ruby, just separtors in the puts):
>
> extNot2move.class is an Array and the elements are
> .jpg,.pdf,.mrw,.png,.psd,.tif,.gif,.pict
>
> extNot2move.include?(File.extname(fn).downcase) is false ::: Filename
> is: /Volumes/2001/Tioga OCSS.x.tif ::: File.extname(fn).downcase is .tif
>
> extNot2move.include?(File.extname(fn).downcase) is false ::: Filename
> is: /Volumes/2001/BirdScript.pict ::: File.extname(fn).downcase is .pict
>
> Thanks for any more help.
>
> --
> Posted via http://www.ruby-forum.com/.

This works for me just fine (the exact same thing you are doing):

['.tif''].include? File.extname('/Volumes/2001/Tioga OCSS.x.tif').downcase

=> true


Are you sure you don't accidentally have any extra/weird characters in
either your extNot2Move array or your File names?