I am trying to get my rails project working on a new machine. I am using
OpenSuse 10.3 and following steps were performed,
- installed rubygems
- installed Rails (1.x) using Suse repository - it didn’t have latest
version.
- updated gem version and Rails version.
- installed other gems such rcov
- installed ‘tzinfo_timezone’ plugin
Now ‘rake db:create:all’ or ‘script/server’ gives me error as -
/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
Now, if I comment out the line init.rb:4
Object.send(:remove_const, :TimeZone)
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.
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,
- installed rubygems
- installed Rails (1.x) using Suse repository - it didn’t have latest
version.
- updated gem version and Rails version.
- installed other gems such rcov
- installed ‘tzinfo_timezone’ plugin
Now ‘rake db:create:all’ or ‘script/server’ gives me error as -
> /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
Now, if I comment out the line init.rb:4
Object.send(:remove_const, :TimeZone)
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.
Just checked tzinfo_timezone plugin mailing list and found the solution:
Check:
http://rubyforge.org/pipermail/tzinfo-users/2008-December/000074.html
Thanks,
Shantanu.