gamnit: make `SpriteSet` public so clients can use its services
[nit.git] / lib / mongodb / mongodb.nit
index 80c4d4c..1baf7f3 100644 (file)
 # # Opens the connexion with the Mongo server.
 # var client = new MongoClient("mongodb://localhost:27017/")
 #
+# # Select the database.
+# var db_suffix = "NIT_TESTING_ID".environ
+# var db_name = "test_{db_suffix}"
+# var db = client.database(db_name)
+#
 # # Retrieve a collection.
-# var col = client.database("test").collection("test")
+# var col = db.collection("test")
 #
 # # Insert a document in the collection.
 # var doc = new JsonObject
@@ -42,6 +47,7 @@
 # ~~~
 module mongodb
 
+import json::static
 import json
 private import native_mongodb
 
@@ -90,9 +96,9 @@ private class BSON
        end
 
        redef fun to_s do
-               var ns = native.to_native_string
-               var res = ns.to_s_with_copy
-               ns.free # manual free of gc allocated NativeString
+               var ns = native.to_c_string
+               var res = ns.to_s
+               ns.free # manual free of gc allocated CString
                return res
        end
 
@@ -146,7 +152,7 @@ class MongoError
        # Human readable error message.
        fun message: String do
                var ns = native.message
-               var res = ns.to_s_with_copy
+               var res = ns.to_s
                ns.free
                return res
        end
@@ -225,7 +231,9 @@ class MongoClient
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var db = client.database("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
        # db.collection("test").insert(new JsonObject)
        # assert client.database_names.has("test")
        # ~~~
@@ -236,7 +244,7 @@ class MongoClient
                var i = 0
                var name = nas[i]
                while not name.address_is_null do
-                       res.add name.to_s_with_copy
+                       res.add name.to_s
                        name.free
                        i += 1
                        name = nas[i]
@@ -252,7 +260,10 @@ class MongoClient
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # assert client.database("test").name == "test"
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # assert db.name == db_name
        # ~~~
        fun database(name: String): MongoDb do return new MongoDb(self, name)
 
@@ -311,7 +322,9 @@ class MongoDb
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var db = client.database("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
        # db.collection("test").insert(new JsonObject)
        # assert db.collection_names.has("test")
        # ~~~
@@ -322,7 +335,7 @@ class MongoDb
                var i = 0
                var name = nas[i]
                while not name.address_is_null do
-                       res.add name.to_s_with_copy
+                       res.add name.to_s
                        name.free
                        i += 1
                        name = nas[i]
@@ -334,7 +347,9 @@ class MongoDb
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var db = client.database("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
        # var col = db.collection("test")
        # assert col.name == "test"
        # ~~~
@@ -346,7 +361,9 @@ class MongoDb
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var db = client.database("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
        # assert not db.has_collection("qwerty")
        # ~~~
        fun has_collection(name: String): Bool do
@@ -404,7 +421,10 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test")
        # var doc = new JsonObject
        # doc["foo"] = 10
        # doc["bar"] = "bar"
@@ -436,7 +456,10 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test")
        #
        # var doc = new JsonObject
        # doc["foo"] = 10
@@ -466,7 +489,10 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test")
        # var sel = new JsonObject
        # sel["foo"] = 10
        # assert col.remove(sel)
@@ -488,7 +514,10 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test")
        # var sel = new JsonObject
        # sel["foo"] = 10
        # var upd = new JsonObject
@@ -516,7 +545,10 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test")
        # var query = new JsonObject
        # query["foo"] = 10
        # assert col.count(query) > 0
@@ -535,7 +567,10 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test")
        # var query = new JsonObject
        # query["foo"] = 10
        # var doc = col.find(query)
@@ -565,7 +600,10 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test")
        # var query = new JsonObject
        # query["foo"] = 10
        # assert col.find_all(query).length > 0
@@ -588,7 +626,10 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test_aggregate")
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test_aggregate")
        #
        # col.drop
        #
@@ -625,8 +666,11 @@ class MongoCollection
        #
        # ~~~
        # var client = new MongoClient("mongodb://localhost:27017/")
-       # var col = client.database("test").collection("test")
-       # assert col.stats["ns"] == "test.test"
+       # var db_suffix = "NIT_TESTING_ID".environ
+       # var db_name = "test_{db_suffix}"
+       # var db = client.database(db_name)
+       # var col = db.collection("test")
+       # assert col.stats["ns"] == "{db_name}.test"
        # ~~~
        fun stats: nullable JsonObject do
                var bson = native.stats