lib/standard/ropes: Adapted some services from Text.
authorLucas Bajolet <r4pass@hotmail.com>
Thu, 5 Jun 2014 14:34:43 +0000 (10:34 -0400)
committerLucas Bajolet <r4pass@hotmail.com>
Thu, 5 Jun 2014 18:17:07 +0000 (14:17 -0400)
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

lib/standard/ropes.nit

index c8409a2..40d531b 100644 (file)
@@ -163,6 +163,46 @@ class RopeString
 
        redef fun to_s do return self
 
+       redef fun empty do return once new RopeString.from("")
+
+       redef fun reversed
+       do
+               var ret = empty.as(RopeString)
+               for i in substrings do
+                       ret = ret.prepend(i.reversed.to_s).as(RopeString)
+               end
+               return ret
+       end
+
+       redef fun to_upper
+       do
+               var ret = empty
+               for i in substrings do
+                       ret += i.to_upper
+               end
+               return ret
+       end
+
+       redef fun to_lower
+       do
+               var ret = empty
+               for i in substrings do
+                       ret += i.to_lower
+               end
+               return ret
+       end
+
+       redef fun +(o) do return insert_at(o.to_s, length)
+
+       redef fun *(n)
+       do
+               var ret = new RopeString.from("")
+               for i in [0..n[ do
+                       ret = (ret + self).as(RopeString)
+               end
+               return ret
+       end
+
        # Inserts a String `str` at position `pos`
        fun insert_at(str: String, pos: Int): RopeString
        do