Forum: Rails I18n Rcov and i18n gem

Posted by Felipe (Guest)
on 2010-02-18 20:09
(Received via mailing list)
Hi guys,

I installed rails 3 beta, and the gem i18n (active_support
dependency).

After this, when I migrated my app to rails 2.3.5, it was 2.3.2, it
became to raise an error when I ran rcov reports.

The error is:
/usr/lib/ruby/gems/1.8/gems/i18n-0.3.3/lib/i18n/core_ext/string/
interpolate.rb:88:in `%': one hash required (ArgumentError)
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/lib/rcov/formatters/
text_report.rb:21:in `print_info'
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/lib/rcov/formatters/
text_report.rb:10:in `execute'
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/lib/rcov/formatters/
base_formatter.rb:65:in `each'
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/lib/rcov/formatters/
base_formatter.rb:65:in `each_file_pair_sorted'
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/lib/rcov/formatters/
text_report.rb:8:in `execute'
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/lib/rcov/
code_coverage_analyzer.rb:146:in `dump_coverage_info'
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/lib/rcov/
code_coverage_analyzer.rb:146:in `each'
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/lib/rcov/
code_coverage_analyzer.rb:146:in `dump_coverage_info'
  from /usr/lib/ruby/gems/1.8/gems/rcov-0.9.6/bin/rcov:428
  from /usr/lib/ruby/1.8/test/unit.rb:278

I updated rcov to 0.9.7.1 but the error remains the same.

Then I removed i18n gem and everything came back to normal again.

We will be migrating to rails 3 soon, so how I can solve this?

Felipe
Posted by rodrigob (Guest)
on 2010-02-23 00:04
(Received via mailing list)
I got the same problem
http://github.com/stffn/declarative_authorization/issues/#issue/30

any suggestion of which is the correct thing to do ?

Regards,
rodrigob.
Posted by Sven Fuchs (Guest)
on 2010-02-25 14:58
(Received via mailing list)
This should be resolved in in 
http://github.com/svenfuchs/i18n/commit/bd740600683ca2aae78e4abf898f011627b623e0 
which is contained in I18n 0.3.4 and available on Gemcutter.

This was also reported on 
http://github.com/svenfuchs/i18n/issues/closed#issue/9 and 
http://i18n.lighthouseapp.com/projects/14947-ruby-i18n/tickets/20

Thanks everybody!
Posted by Henrik --- (malesca)
on 2010-02-25 21:17
(Received via mailing list)
Funny, I just ran into this today and ticketed it in Rails:
https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4052

Sven, maybe you could explain just how the i18n gem and the built-in
Active Support core ext are meant to interact? As that ticket states,
when I ran the Active Support tests, it used the method from my i18n
gem.
Posted by Sven Fuchs (Guest)
on 2010-02-25 21:39
(Received via mailing list)
Hey Henrik,

On Feb 25, 2010, at 9:16 PM, Henrik Nyh wrote:
> Funny, I just ran into this today and ticketed it in Rails:
> https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4052

Oops :)

Yeah, I that problem should go away with upgrading the I18n gem?

> Sven, maybe you could explain just how the i18n gem and the built-in
> Active Support core ext are meant to interact? As that ticket states,
> when I ran the Active Support tests, it used the method from my i18n
> gem.

basically Rails shipped the I18n gem as a vendored gem from 2.2.0 (which 
introduced I18n support in Rails) until 3.0.0 (which stops shipping any 
dependencies as vendored code, afaik).

ActiveSupport is not the only library in Rails that vendored stuff but 
here's where these gems were located: 
http://github.com/rails/rails/tree/v2.3.0/activesupport/lib/active_support/vendor

At first users were forced to use the vendored gem no matter which gem 
version had been released and installed on the user's system in the 
meanwhile:

  http://github.com/rails/rails/blob/v2.3.0/activesupport/lib/active_support/vendor.rb#L27

Starting from 2.3.3.1 users could install the gem locally and 
ActiveSupport would prefer that one over the vendored/shipped version, 
but ONLY if the version is I18n >= 0.1.3 and <= 0.2.0 (that's what that 
'~> 0.1.3' expression says):

  http://github.com/rails/rails/blob/v2.3.3.1/activesupport/lib/active_support/vendor.rb#L24

In Rails 2.3.5 this was relaxed so that the user could install any I18n 
version >= 0.1.3 and ActiveSupport would pick it up:

  http://github.com/rails/rails/blob/v2.3.5/activesupport/lib/active_support/vendor.rb#L24

Starting from Rails 3 afaik Bundler will install and use whatever 
version you tell it through the Gemfile. I haven't really looked closely 
at that though.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.