Feature #19565
closedIgnore lower-case/upper-case Proposal
Description
So, first april is on the horizon and in-before-we-go (nobu tends
to make quick first april proposals, so let's hurry up!)
It is here proposed to ignore case, that is, lower-case, and upper-case,
at the least for method calls. This could be for variables too, but I
don't care so much about variables.
Rationale for the proposal:
Given a method such as
I typoed and wrote:
Of course ruby complains and insists it must be written "primary_link".
(I use that method for ad-hoc HTML hyperreferences in a webpage.)
Wouldn't it be nice if we are able to ignore this, and simply assume
that, at the least for method names, ruby would ignore the case,
that is, whether it is downcased/lowercased or upper cased?
Granted, the proposal is about 85% meant as a jest and joke, but the
15% is that this MAY be useful in SOME situations. Kind of like
we had in oldschool evil.rb; I distinctly remember we could even
change object identities at runtime too (I don't know what happened
to evil.rb, but I distinctly remember we had it during the ruby
1.8.x era or so).
I actually only propose this to be used on a per-file basis, to
simplify it.
So, for instance, you have a .rb file, and in that .rb file you
need to tell ruby that you want to ignore the case.
This could perhaps be via some configuration-call, such as:
Or something similar. Or more similar to IRB where we treat
RbConfig as a Hash via [] e. g.
Or something similar like that. Right now there is no method
defined on RbConfig, so this should not cause backwards
incompatibility issues.
Of course one can reason that this is 100% a rubbish proposal.
That's ok. Easier to suggest it when it is close to the first
april. :)
PHP works like this if I recall correctly. Windows also ignores
cases of e. g. binaries and directories if I recall correctly.
So while this proposal may be rubbish, and as stated more of a
joke, I believe there may be a few potential use cases of this
too. Kind of like the ruby user telling ruby "ruby, I know by
default you look at the case of characters, but for this
specific file or project, I want you to ignore the case".
(We could extend this to a whole namespace, e. g. per-module
and per-class, but for this proposal I want to keep it simpler
and just focus on a per-file basis, that is, on a per .rb
basis. We could also add more magic comments such as it was
with "# frozen_string_literal: true", but I think the ruby core
team does not want to add more meta-meaning, so this probably
would have zero chance to be implemented. So the focus on a
per .rb file basis just seemed simpler to me for this proposal
here.)