summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2015-01-13 16:19:46 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2015-01-13 16:19:46 +0900
commit4aef1ad209179e67bbeb9d3bfaad2f5d233d958e (patch)
tree366cf6146d52f93e4c72a96e0b632949222fd463
parent1ab79ac41494320624cbfd40163ebcf4634caf31 (diff)
parent1b606025ed1a9813267bf8ac4440fc9dd5fc120c (diff)
downloadmruby-4aef1ad209179e67bbeb9d3bfaad2f5d233d958e.tar.gz
mruby-4aef1ad209179e67bbeb9d3bfaad2f5d233d958e.zip
Merge pull request #2700 from takahashim/string-ljust
add String#ljust into mruby-string-ext
-rw-r--r--mrbgems/mruby-string-ext/mrblib/string.rb23
-rw-r--r--mrbgems/mruby-string-ext/test/string.rb7
2 files changed, 30 insertions, 0 deletions
diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb
index 88bdd9090..fd805b144 100644
--- a/mrbgems/mruby-string-ext/mrblib/string.rb
+++ b/mrbgems/mruby-string-ext/mrblib/string.rb
@@ -244,4 +244,27 @@ class String
return str + self if pos == 0
return self[0..pos - 1] + str + self[pos..-1]
end
+
+ ##
+ # call-seq:
+ # str.ljust(integer, padstr=' ') -> new_str
+ #
+ # If <i>integer</i> is greater than the length of <i>str</i>, returns a new
+ # <code>String</code> of length <i>integer</i> with <i>str</i> left justified
+ # and padded with <i>padstr</i>; otherwise, returns <i>str</i>.
+ #
+ # "hello".ljust(4) #=> "hello"
+ # "hello".ljust(20) #=> "hello "
+ # "hello".ljust(20, '1234') #=> "hello123412341234123"
+ def ljust(idx, padstr = ' ')
+ if idx <= self.size
+ return self
+ end
+ newstr = self.dup
+ newstr << padstr
+ while newstr.size <= idx
+ newstr << padstr
+ end
+ return newstr.slice(0,idx)
+ end
end
diff --git a/mrbgems/mruby-string-ext/test/string.rb b/mrbgems/mruby-string-ext/test/string.rb
index 9fa835249..83e69859b 100644
--- a/mrbgems/mruby-string-ext/test/string.rb
+++ b/mrbgems/mruby-string-ext/test/string.rb
@@ -386,3 +386,10 @@ assert('String#prepend') do
assert_equal "hello world", a.prepend("hello ")
assert_equal "hello world", a
end
+
+assert('String#ljust') do
+ assert_equal "hello", "hello".ljust(4)
+ assert_equal "hello ", "hello".ljust(20)
+ assert_equal "hello123412341234123", "hello".ljust(20, '1234')
+ assert_equal "hello", "hello".ljust(-3)
+end