lib/sqlite3: add the service `String::to_sql_string`
authorAlexis Laferrière <alexis.laf@xymus.net>
Thu, 24 Jul 2014 00:40:03 +0000 (20:40 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Wed, 30 Jul 2014 13:10:31 +0000 (09:10 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

lib/sqlite3/sqlite3.nit

index d194362..6856d9d 100644 (file)
@@ -290,7 +290,17 @@ interface Sqlite3Data end
 
 redef universal Int super Sqlite3Data end
 redef universal Float super Sqlite3Data end
-redef class String super Sqlite3Data end
+redef class String
+       super Sqlite3Data
+
+       # Return `self` between `'`s and escaping any extra `'`
+       #
+       #     assert "'; DROP TABLE students".to_sql_string == "'''; DROP TABLE students'"
+       fun to_sql_string: String
+       do
+               return "'{self.replace('\'', "''")}'"
+       end
+end
 
 # A Sqlite3 blob
 class Blob