# REQUIRE: `left >= 0.0 and left <= 1.0`
# ENSURE: `self.length <= length implies result.length == length`
# ENSURE: `self.length >= length implies result == self`
- fun justify(length: Int, left: Float): SELFTYPE
+ fun justify(length: Int, left: Float): String
do
var diff = length - self.length
- if diff <= 0 then return self
+ if diff <= 0 then return to_s
assert left >= 0.0 and left <= 1.0
var before = (diff.to_f * left).to_i
return " " * before + self + " " * (diff-before)
# assert "a&b-<>\"x\"/'".html_escape == "a&b-<>"x"/'"
#
# SEE: <https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet#RULE_.231_-_HTML_Escape_Before_Inserting_Untrusted_Data_into_HTML_Element_Content>
- fun html_escape: SELFTYPE
+ fun html_escape: String
do
var buf = new FlatBuffer
# Split `self` using `p` as separator.
#
# assert "hello world".split('o') == ["hell", " w", "rld"]
- fun split(p: Pattern): Array[SELFTYPE]
+ fun split(p: Pattern): Array[String]
do
var matches = p.split_in(self)
- var res = new Array[SELFTYPE].with_capacity(matches.length)
+ var res = new Array[String].with_capacity(matches.length)
for m in matches do res.add(m.to_s)
return res
end
# @deprecated alias for `split`
- fun split_with(p: Pattern): Array[SELFTYPE] do return self.split(p)
+ fun split_with(p: Pattern): Array[String] do return self.split(p)
# Split `self` on the first `=`
#
#
# assert "hlelo".replace("le", "el") == "hello"
# assert "hello".replace('l', "") == "heo"
- fun replace(p: Pattern, string: SELFTYPE): SELFTYPE
+ fun replace(p: Pattern, string: SELFTYPE): String
do
return self.split_with(p).join(string)
end