Forum: Ruby on Rails tzinfo_timezone plugin - Object::TimeZone not defined

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Shantanu P. (Guest)
on 2008-12-05 02:46
I am trying to get my rails project working on a new machine. I am using
OpenSuse 10.3 and following steps were performed,
1. installed rubygems
2. installed Rails (1.x) using Suse repository - it didn't have latest
version.
3. updated gem version and Rails version.
4. installed other gems such rcov
5. installed 'tzinfo_timezone' plugin

Now 'rake db:create:all' or 'script/server' gives me error as -
[code=]

/home/pavgi/agenda32/vendor/plugins/tzinfo_timezone/init.rb:4:in
`remove_const': constant Object::TimeZone not defined (NameError)
        from
/home/pavgi/agenda32/vendor/plugins/tzinfo_timezone/init.rb:4:in `send'
        from
/home/pavgi/agenda32/vendor/plugins/tzinfo_timezone/init.rb:4:in
`evaluate_init_rb'
        from
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:103:in
`evaluate_init_rb'
        from
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in
`silence_warnings'
        from
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:99:in
`evaluate_init_rb'
        from
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:44:in `load'
        from
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:33:in
`load_plugins'
        from
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in
`each'
         ... 17 levels...
        from
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
        from
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
        from
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from script/server:3
[/code]

Now, if I comment out the line init.rb:4
[code=]
Object.send(:remove_const, :TimeZone)
[/code]
then above rake command and server start runs successfully. What and
where could be the problem? Where do I define the constant
Object::TimeZone? Any help for debugging? (The same code runs
successfully on my old machine.)

Thanks,
Shantanu.
Shantanu P. (Guest)
on 2008-12-05 23:58
I don't know the reason behind this problem. I fixed (bypassed?) it by
adding if condition in the tzinfo_timezone plugin's init.rb file.
require 'tzinfo_timezone'
New init.rb file:
# remove the existing TimeZone constant
if Object.const_defined?(:TimeZone)
  Object.send(:remove_const, :TimeZone)
end

# Use TzinfoTimezone as the TimeZone class
Object::TimeZone = TzinfoTimezone


Please reply if you know the reason behind this problem.

-
Shantanu.


Shantanu P. wrote:
> I am trying to get my rails project working on a new machine. I am using
> OpenSuse 10.3 and following steps were performed,
> 1. installed rubygems
> 2. installed Rails (1.x) using Suse repository - it didn't have latest
> version.
> 3. updated gem version and Rails version.
> 4. installed other gems such rcov
> 5. installed 'tzinfo_timezone' plugin
>
> Now 'rake db:create:all' or 'script/server' gives me error as -
> [code=]
>
> /home/pavgi/agenda32/vendor/plugins/tzinfo_timezone/init.rb:4:in
> `remove_const': constant Object::TimeZone not defined (NameError)
>         from
> /home/pavgi/agenda32/vendor/plugins/tzinfo_timezone/init.rb:4:in `send'
>         from
> /home/pavgi/agenda32/vendor/plugins/tzinfo_timezone/init.rb:4:in
> `evaluate_init_rb'
>         from
> /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:103:in
> `evaluate_init_rb'
>         from
> 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb:11:in
> `silence_warnings'
>         from
> /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:99:in
> `evaluate_init_rb'
>         from
> /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin.rb:44:in `load'
>         from
> /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:33:in
> `load_plugins'
>         from
> /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/plugin/loader.rb:32:in
> `each'
>          ... 17 levels...
>         from
> /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
>         from
> /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
> `gem_original_require'
>         from
> /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
>         from script/server:3
> [/code]
>
> Now, if I comment out the line init.rb:4
> [code=]
> Object.send(:remove_const, :TimeZone)
> [/code]
> then above rake command and server start runs successfully. What and
> where could be the problem? Where do I define the constant
> Object::TimeZone? Any help for debugging? (The same code runs
> successfully on my old machine.)
>
> Thanks,
> Shantanu.
Shantanu P. (Guest)
on 2008-12-06 00:06
Just checked tzinfo_timezone plugin mailing list and found the solution:
Check:
http://rubyforge.org/pipermail/tzinfo-users/2008-D...

Thanks,
Shantanu.
This topic is locked and can not be replied to.