From: "egor.homakov (egor homakov)" Date: 2012-05-29T22:37:19+09:00 Subject: [ruby-core:45303] [ruby-trunk - Feature #6513][Open] Make method_missing to lookup in constants too Issue #6513 has been reported by egor.homakov (egor homakov). ---------------------------------------- Feature #6513: Make method_missing to lookup in constants too https://bugs.ruby-lang.org/issues/6513 Author: egor.homakov (egor homakov) Status: Open Priority: Normal Assignee: Category: Target version: =begin First letter of constant is always a capital letter(in Ruby). if you define method: def Hi 1 end You're not able to use it w/o (): Hi it looks up for constant and raises error. only: Hi() or send(:Hi) None of code style guides teaches to use capital letters in methods' names. It's not convinient and bad practise. At the same time we use constants(it's modules/classes too) a lot. To access constant we use '::' The idea is to change the way how ruby looks up: 1) if first letter is capital - looking for constant. if not found - moving directly to step 2 2) looking for local variable and method as we do it now This change will make syntax much more awesome & sexy: ActiveSupport::Autoload -> ActiveSupport.Autoload class Request < Rack::Request -> class Request < Rack.Request Currently I can give you a hence using this monkey patch: (({class Module alias method_missing const_get end module A module B class C end end end #A.B.C instead of A::B::C - awesome?!})) For me it is similar to changing hash syntax( => to sym: ''). I know, it is only 1 character less BUT it's 3 visible dots less too :) Thank you for considering this proposal. =end -- http://bugs.ruby-lang.org/