This is one of the things that got me concerned: 
http://devblog.avdi.org/2011/08/18/do-we-need-constants/

It's neat, but seems wrong (no offense to those using that technique).

On Friday, December 7, 2012 5:13:51 PM UTC-5, Gary Weaver wrote:
>
> $ irb
> 1.9.3p194 :001 > class Class
> 1.9.3p194 :002?>      def def_const(constant, value)
> 1.9.3p194 :003?>          remove_const(constant) if 
> const_defined?(constant)
> 1.9.3p194 :004?>          const_set(constant, value)
> 1.9.3p194 :005?>        end
> 1.9.3p194 :006?>   end
>  => nil 
> 1.9.3p194 :007 > class Something
> 1.9.3p194 :008?>   def_const(:HI, 1)
> 1.9.3p194 :009?>   end
>  => 1 
> 1.9.3p194 :010 > class Something
> 1.9.3p194 :011?>   def_const(:HI, 1)
> 1.9.3p194 :012?>   end
>  => 1 
> 1.9.3p194 :013 > Something::HI
>  => 1 
>
> Like that.
>
> On Friday, December 7, 2012 5:00:40 PM UTC-5, Gary Weaver wrote:
>>
>> This probably sounds crazy but has it even been considered to either have 
>> a way to register constants for an autoloaded class so they will be 
>> undefined before reload, or maybe even just a class method to do:
>>
>> def_const(:SOME_CONSTANT, value)
>>
>> that would:
>>
>> def def_const(constant, value)
>>   remove_const(constant) if const_defined?(constant)
>>   constant = value
>> end
>>
>> Some say to put constants where they aren't autoloaded (like in 
>> initializers) and other even suggest using methods, but that defeats the 
>> purpose of using constants. So does the method above, but it is more in 
>> line with what Rails autoloading promises.
>>
>> Seems like avoiding the problem makes some consider just using magic 
>> numbers in code which is like stepping back into time.
>>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-core/-/mUQyjtT25aoJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to