X-Git-Url: http://nitlanguage.org diff --git a/lib/github/cache.nit b/lib/github/cache.nit index e4d41c3..466e4a9 100644 --- a/lib/github/cache.nit +++ b/lib/github/cache.nit @@ -26,7 +26,7 @@ # var api = new GithubAPI(get_github_oauth) # api.enable_cache = true # -# var name = "privat/nit" +# var name = "nitlang/nit" # assert not api.has_cache(name) # var repo = api.load_repo(name) # load from GitHub # #assert api.has_cache(name) FIXME bring back this assert @@ -60,17 +60,19 @@ redef class GithubAPI if store.has_key(key) then message(1, "Get {key} (cache)") was_error = false - return store.load_object(key) + return deserialize(store.load_object(key).to_json).as(nullable GithubEntity) end var obj = super - if not was_error then cache(key, obj) + if not was_error then + cache(key, obj.as(not null)) + end return obj end # Save `json` data in cache under `key`. - private fun cache(key: String, json: JsonObject) do + private fun cache(key: String, obj: GithubEntity) do message(2, "Cache key {key}") - store.store_object(key, json) + store.store_object(key, obj.to_json.parse_json.as(JsonObject)) end # Check if a cache file exists for `key`.