String#% and a Hash

Ruby1.9 doesn’t seem to accept hashes in the String#% method anymore.
I use this a lot in conjunction with gettext[1], and am basically
wondering if this is a language change or a 1.9 bug. It doesn’t appear
to be documented in Ruby1.8 or Ruby1.9. Thanks.

Daniel Brumbaugh K.

[1]
http://www.yotabanana.com/hiki/ruby-gettext.html

On Dec 31, 1:34 am, Daniel Brumbaugh K. [email protected]
wrote:

Ruby1.9 doesn’t seem to accept hashes in the String#% method anymore.
I use this a lot in conjunction with gettext[1], and am basically
wondering if this is a language change or a 1.9 bug. It doesn’t appear
to be documented in Ruby1.8 or Ruby1.9. Thanks.

Daniel Brumbaugh K.

[1]
http://www.yotabanana.com/hiki/ruby-gettext.html

Example? In 1.8.6, this excepts:

“blah %s %s” % {:a=>“blah”, :b=>“blah”}

=> ArgumentError: too few arguments …

Regards,
Jordan

On Dec 30, 2007, at 23:34 , Daniel Brumbaugh K. wrote:

Ruby1.9 doesn’t seem to accept hashes in the String#% method anymore.
I use this a lot in conjunction with gettext[1], and am basically
wondering if this is a language change or a 1.9 bug. It doesn’t appear
to be documented in Ruby1.8 or Ruby1.9. Thanks.

Did it ever? I think you’re referring to this, right?

Also you can write as:
_("%{filename} was not found") % {:filename => “foo.rb”}
_("%{filename1} and %{filename2} is not same file") % {:filename1 =>
“foo.rb”,
:filename2 =>
“bar.rb”}
_("%{filename} is %{filesize} byte") % {:filename => “foo.rb”,
:filesize => 100}

that looks like a gettext extension of String#%, not part of 1.8 core:

s = ‘%{a}’; s.%(“a” => 42)
ArgumentError: malformed format string - %{
from (irb):8:in `%’
from (irb):8

I know it works this way in python, and it is actually pretty nice.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs