From fe9f3fdd200659e88ef72aab5198e552d138ea27 Mon Sep 17 00:00:00 2001 From: Tomoyuki Sahara Date: Tue, 3 Jun 2014 10:55:26 +0900 Subject: add 'String#%'. --- mrbgems/mruby-sprintf/mrblib/string.rb | 9 +++++++++ mrbgems/mruby-sprintf/test/sprintf.rb | 9 +++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 mrbgems/mruby-sprintf/mrblib/string.rb diff --git a/mrbgems/mruby-sprintf/mrblib/string.rb b/mrbgems/mruby-sprintf/mrblib/string.rb new file mode 100644 index 000000000..d7e55536a --- /dev/null +++ b/mrbgems/mruby-sprintf/mrblib/string.rb @@ -0,0 +1,9 @@ +class String + def %(args) + if args.is_a? Array + sprintf(self, *args) + else + sprintf(self, args) + end + end +end diff --git a/mrbgems/mruby-sprintf/test/sprintf.rb b/mrbgems/mruby-sprintf/test/sprintf.rb index 52e94fb83..7007df1fa 100644 --- a/mrbgems/mruby-sprintf/test/sprintf.rb +++ b/mrbgems/mruby-sprintf/test/sprintf.rb @@ -1,3 +1,8 @@ -## -# Kernel#sprintf Kernel#format Test +#assert('Kernel.sprintf') do +#end +assert('String#%') do + assert_equal "one=1", "one=%d" % 1 + assert_equal "1 one 1.0", "%d %s %3.1f" % [ 1, "one", 1.01 ] + assert_equal "123 < 456", "%{num} < %s" % { num: 123, str: "456" } +end -- cgit v1.2.3 From 4380f861503fc441a00aee9d16b5b074f3cbc158 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 3 Jun 2014 16:33:30 +0900 Subject: Special treatment for Hashes, not Arrays; ref #2349 --- mrbgems/mruby-sprintf/mrblib/string.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mrbgems/mruby-sprintf/mrblib/string.rb b/mrbgems/mruby-sprintf/mrblib/string.rb index d7e55536a..f8bd3b02e 100644 --- a/mrbgems/mruby-sprintf/mrblib/string.rb +++ b/mrbgems/mruby-sprintf/mrblib/string.rb @@ -1,9 +1,9 @@ class String def %(args) - if args.is_a? Array - sprintf(self, *args) - else + if args.is_a? Hash sprintf(self, args) + else + sprintf(self, *args) end end end -- cgit v1.2.3