Case sensitivity in glob revisited

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]")

T.

Tom what would you expect it to do in the following case:

touch SomeThingStupid
touch somethingstupid
touch SOMETHINGSTUPID # no, I am not shouting, sorry :wink:

I am afraid Ruby can not overcome some limitations of the cruel,
physical world :(.

Cheers
Robert

···

On 7/30/07, Trans <transfire@gmail.com> 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]")

--
[...] as simple as possible, but no simpler.
-- Attributed to Albert Einstein

Hi,

At Tue, 31 Jul 2007 04:08:49 +0900,
Trans wrote in [ruby-talk:262505]:

     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)

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("somehingstupid", File::FNM_CASEFOLD)

···

--
Nobu Nakada

Yea it works now! |-) So the docs just need to catch up to reality.
Okay.

Sorry for the noise,
T.

···

On Jul 30, 12:34 pm, Nobuyoshi Nakada <n...@ruby-lang.org> wrote:

Hi,

At Tue, 31 Jul 2007 04:08:49 +0900,
Trans wrote in [ruby-talk:262505]:

> 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)
> 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("somehingstupid", File::FNM_CASEFOLD)

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.

T.

···

On Jul 30, 12:25 pm, "Robert Dober" <robert.do...@gmail.com> wrote:

On 7/30/07, Trans <transf...@gmail.com> 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 :wink:

I am afraid Ruby can not overcome some limitations of the cruel,
physical world :(.

so you would just get three entries with the same name, right?
Sorry I failed to understand that this was what you wanted <blush>.

Cheers
Robert

···

On 7/30/07, Trans <transfire@gmail.com> wrote:

On Jul 30, 12:25 pm, "Robert Dober" <robert.do...@gmail.com> wrote:
> On 7/30/07, Trans <transf...@gmail.com> 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 :wink:
>
> 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.

--
[...] as simple as possible, but no simpler.
-- Attributed to Albert Einstein