From: Robert Dober Date: 2007-07-31T06:44:00+09:00 Subject: Re: Case sensitivity in glob revisited On 7/30/07, Trans wrote: > > > On Jul 30, 12:25 pm, "Robert Dober" wrote: > > On 7/30/07, Trans wrote: > > > > > Dir.glob( pattern, [flags] ) => array > > > Dir.glob( pattern, [flags] ) {| filename | block } => nil > > > ------------------------------------------------------------------------ > > > Returns the filenames found by expanding _pattern_ which is an > > > +Array+ of the patterns or the pattern +String+, either as an > > > _array_ or as parameters to the block. Note that this pattern is > > > not a regexp (it's closer to a shell glob). See +File::fnmatch+ > > > for > > > the meaning of the _flags_ parameter. Note that case sensitivity > > > depends on your system (so +File::FNM_CASEFOLD+ is ignored) > > > > > "case sensitivity depends on your system" > > > > > Ruby's cross-platform, so Ruby should trump the system. Of course if > > > the system is case insensitive, to won't matter wither way. But > > > otherwise without this, to get case insensitivity we have to do: > > > > > Dir.glob("[Ss][Oo][Mm][Ee][Th][Ii][Nn][Gg][Ss][Tt][Uu][Pp][Ii][Dd]") > > > > Tom what would you expect it to do in the following case: > > > > touch SomeThingStupid > > touch somethingstupid > > touch SOMETHINGSTUPID # no, I am not shouting, sorry ;) > > > > I am afraid Ruby can not overcome some limitations of the cruel, > > physical world :(. > > Oh, I just meant for Dir#glob. Where the docs said "(so > +File::FNM_CASEFOLD+ is ignored)" -- I didn't want it to be ignored. so you would just get three entries with the same name, right? Sorry I failed to understand that this was what you wanted . Cheers Robert -- [...] as simple as possible, but no simpler. -- Attributed to Albert Einstein