[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]