ruby-changes:16726
From: mame <ko1@a...>
Date: Thu, 22 Jul 2010 22:58:35 +0900 (JST)
Subject: [ruby-changes:16726] Ruby:r28722 (ruby_1_9_2): merge revision(s) 28702:
mame 2010-07-22 22:58:10 +0900 (Thu, 22 Jul 2010) New Revision: 28722 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28722 Log: merge revision(s) 28702: * sprintf.c: add short documentation about named reference. [ruby-core:31294] Modified files: branches/ruby_1_9_2/ChangeLog branches/ruby_1_9_2/sprintf.c branches/ruby_1_9_2/test/ruby/test_sprintf.rb Index: ruby_1_9_2/ChangeLog =================================================================== --- ruby_1_9_2/ChangeLog (revision 28721) +++ ruby_1_9_2/ChangeLog (revision 28722) @@ -1,3 +1,8 @@ +Thu Jul 22 22:38:32 2010 NARUSE, Yui <naruse@r...> + + * sprintf.c: add short documentation about named reference. + [ruby-core:31294] + Thu Jul 22 22:14:59 2010 NARUSE, Yui <naruse@r...> * regexec.c (onig_search): don't skip non-ANYCHARs when Index: ruby_1_9_2/sprintf.c =================================================================== --- ruby_1_9_2/sprintf.c (revision 28721) +++ ruby_1_9_2/sprintf.c (revision 28722) @@ -420,6 +420,15 @@ * sprintf("%1$*2$s %2$d", "hello", -8) #=> "hello -8" * sprintf("%+g:% g:%-g", 1.23, 1.23, 1.23) #=> "+1.23: 1.23:1.23" * sprintf("%u", -123) #=> "-123" + * + * For more complex formatting, Ruby supports a reference by name. + * %<name>s style uses format style, but ${name} style doesn't. + * + * Exapmles: + * sprintf("%<foo>d : %<bar>f" % { :foo => 1, :bar => 2 }) + * #=> 1 : 2.000000 + * sprintf("%d %{foo}" % { :foo => 'bar' }) + * # => "%d bar" */ VALUE Index: ruby_1_9_2/test/ruby/test_sprintf.rb =================================================================== --- ruby_1_9_2/test/ruby/test_sprintf.rb (revision 28721) +++ ruby_1_9_2/test/ruby/test_sprintf.rb (revision 28722) @@ -294,5 +294,8 @@ assert_equal("value", sprintf("%<key>s", :key => "value")) assert_raise(ArgumentError) {sprintf("%1$<key2>s", :key => "value")} assert_raise(ArgumentError) {sprintf("%<key><key2>s", :key => "value")} + assert_equal("value", sprintf("%{key}", :key => "value")) + assert_raise(ArgumentError) {sprintf("%1${key2}", :key => "value")} + assert_equal("value{key2}", sprintf("%{key}{key2}", :key => "value")) end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/