From e86bc6bb478f5a73b960d4b08e102c7139eae2e1 Mon Sep 17 00:00:00 2001 From: Akira Moroo Date: Sat, 30 Jan 2016 14:25:53 +0900 Subject: Add String#rjust to mruby-string-ext --- mrbgems/mruby-string-ext/mrblib/string.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'mrbgems/mruby-string-ext') diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb index c699e13b7..3dd5561c8 100644 --- a/mrbgems/mruby-string-ext/mrblib/string.rb +++ b/mrbgems/mruby-string-ext/mrblib/string.rb @@ -287,6 +287,29 @@ class String return newstr.slice(0,idx) end + ## + # call-seq: + # str.rjust(integer, padstr=' ') -> new_str + # + # If integer is greater than the length of str, returns a new + # String of length integer with str right justified + # and padded with padstr; otherwise, returns str. + # + # "hello".rjust(4) #=> "hello" + # "hello".rjust(20) #=> " hello" + # "hello".rjust(20, '1234') #=> "123412341234123hello" + def rjust(idx, padstr = ' ') + if idx <= self.size + return self + end + padsize = idx - self.size + newstr = padstr.dup + while newstr.size <= padsize + newstr << padstr + end + return newstr.slice(0,padsize) + self + end + # str.upto(other_str, exclusive=false) {|s| block } -> str # str.upto(other_str, exclusive=false) -> an_enumerator # -- cgit v1.2.3