{"id":21839897,"url":"https://github.com/rustkas/depcache_terminal_examples","last_synced_at":"2025-08-03T23:06:56.936Z","repository":{"id":92075582,"uuid":"483131174","full_name":"rustkas/depcache_terminal_examples","owner":"rustkas","description":"Manual tests functionality of depcache API. https://github.com/zotonic/depcache","archived":false,"fork":false,"pushed_at":"2022-04-23T20:23:56.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-21T15:28:19.274Z","etag":null,"topics":["depcache","erlang"],"latest_commit_sha":null,"homepage":"","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rustkas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-19T06:55:22.000Z","updated_at":"2022-04-23T06:00:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"53b35fa9-ea71-4670-af94-8be4e236633c","html_url":"https://github.com/rustkas/depcache_terminal_examples","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rustkas/depcache_terminal_examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2Fdepcache_terminal_examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2Fdepcache_terminal_examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2Fdepcache_terminal_examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2Fdepcache_terminal_examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rustkas","download_url":"https://codeload.github.com/rustkas/depcache_terminal_examples/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2Fdepcache_terminal_examples/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268625009,"owners_count":24280188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["depcache","erlang"],"created_at":"2024-11-27T21:21:10.427Z","updated_at":"2025-08-03T23:06:56.903Z","avatar_url":"https://github.com/rustkas.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# depcache examples\nManual tests of [depcache](https://github.com/zotonic/depcache) API\n\nBuild\n-----\n\n    $ rebar3 get-deps \u0026\u0026 rebar3 compile \u0026\u0026 rebar3 shell\n \n\n```\n%% Examples were created based on tests\n%% https://github.com/zotonic/depcache/blob/master/test/depcache_tests.erl\n```\n## Examples (Erlang CLI):\n    \n```\n\u003e % get_set_test() -\u003e\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e undefined = depcache:get(test_key, Server).\n\u003e ok = depcache:set(test_key, 123, Server).\n\u003e {ok, 123} = depcache:get(test_key, Server).\n\u003e ok = depcache:flush(test_key, Server).\n\u003e undefined = depcache:get(test_key, Server).\n% stop depcache\n\u003e gen_server:stop(Server, normal, 1).\n\u003e f().\n```\n\n```\n% flush_all_test() -\u003e\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e ok = depcache:set(test_key1, 123, Server).\n\u003e ok = depcache:set(test_key2, 123, Server).\n\u003e ok = depcache:set(test_key3, 123, Server).\n\u003e {ok, 123} = depcache:get(test_key1, Server).\n\u003e {ok, 123} = depcache:get(test_key2, Server).\n\u003e {ok, 123} = depcache:get(test_key3, Server).\n\u003e ok = depcache:flush(Server).\n\u003e undefined = depcache:get(test_key1, Server).\n\u003e undefined = depcache:get(test_key2, Server).\n\u003e undefined = depcache:get(test_key3, Server).\n% stop depcache\n\u003e gen_server:stop(Server, normal, 1).\n\u003e f().\n```\n\n```\n% get_set_maxage_test() -\u003e\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e undefined = depcache:get(xtest_key, Server).\n%% Set a key and hold it for one second.\n\u003e ok = depcache:set(xtest_key, 123, 1, Server). {ok, 123} = depcache:get(xtest_key, Server).\n\u003e {ok, 123} = depcache:get(xtest_key, Server).\n%% Let the depcache time out.\n\u003e timer:sleep(4000).\n\u003e undefined = depcache:get(xtest_key, Server).\n\u003e depcache:flush(Server).\n% stop depcache\n\u003e gen_server:stop(Server, normal, 1).\n\u003e f().\n```\n\n```\n% get_set_maxage0_test() -\u003e\n%% Set a key and hold it for 0 seconds\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e ok = depcache:set(test_key, 123, 0, Server).\n\u003e undefined = depcache:get(test_key, Server).\n\u003e depcache:flush(Server).\n% stop depcache\n\u003e gen_server:stop(Server, normal, 1).\n\u003e f().\n```\n\n```\n% get_set_depend_test() -\u003e\n%% Set a key  and Get items.\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e ok = depcache:set(test_key, [{test_key_dep, 555}], 3600, [test_key_dep], Server).\n\u003e {ok,[{test_key_dep,555}]} = depcache:get(test_key, Server).\n\u003e {ok,555} = depcache:get(test_key, test_key_dep, Server).\n\u003e {ok,555} = depcache:get_subkey(test_key, test_key_dep, Server).\n\u003e undefined = depcache:get(test_key_dep, Server).\n\u003e depcache:flush(Server).\n% stop depcache\n\u003e gen_server:stop(Server, normal, 1).\n\u003e f().\n```\n\n```\n% get_set_depend_test() -\u003e\n%% Set a key  and Get items.\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e undefined = depcache:get(a, b, Server).\n\u003e ok = depcache:set(a, #{ b =\u003e 1 }, Server).\n\u003e {ok,1} = depcache:get(a, b, Server).\n\u003e {ok,1} = depcache:get_subkey(a, b, Server).\n\u003e depcache:flush(Server).\n% stop depcache\n\u003e gen_server:stop(Server, normal, 1).\n\u003e f().\n```\n\n```\n% get_set_depend_test() -\u003e\n%% Set a key  and Get items.\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e ok = depcache:set(a, [{b, 1}], Server).\n\u003e {ok,1} = depcache:get(a, b, Server).\n\u003e {ok,1} = depcache:get_subkey(a, b, Server).\n\u003e ok = depcache:flush(Server).\n% stop depcache\n\u003e ok = gen_server:stop(Server, normal, 1).\n\u003e f().\n```\n\n```\n% in_process_server/1\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e false = depcache:in_process_server(Server).\n\u003e undefined = depcache:in_process(true).\n\u003e true = depcache:in_process_server(Server).\n\u003e ok = depcache:set(a, [{b, 1}], Server).\n\u003e {ok,1} = depcache:get_subkey(a, b, Server).\nok = depcache:set(test_key, [{test_key_dep, 555}], 3600, [test_key_dep], Server).\ndepcache:in_process(false).\n{ok,555} = depcache:get(test_key, test_key_dep, Server).\n{ok,555} = depcache:get_subkey(test_key, test_key_dep, Server).\ndepcache:set(test_key2, [{test_key_dep2, 556}], 3600, [test_key_dep2], Server).\n{ok,556} = depcache:get(test_key2, test_key_dep2, Server).\ndepcache:in_process(true).\nok = depcache:set(test_key3, [{test_key_dep3, 557}], 3600, [test_key_dep3], Server).\ndepcache:set(test_key, [{test_key_dep, 55}], 3600, [test_key_dep], Server).\ndepcache:set(test_key, [{test_key_dep, 5}], 3600, [test_key_dep], Server).\ndepcache:in_process(false).\ndepcache:get(test_key).\ntrue = depcache:in_process_server(Server).\ndepcache:in_process(false).\nexit(Server, ok).\nis_process_alive(Server).\nf().\n```\n\n```\n% memo test\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e IncreaseFun = fun(X) -\u003e\n    I = case erlang:get(X) of\n            undefined -\u003e 1;\n            Num -\u003e Num + 1\n        end,\n    erlang:put(X, I),\n    I end.\n\u003e  IncreaserFunX = fun() -\u003e\n                           IncreaseFun(ok)\n                   end.\n\u003e 1 = depcache:memo(IncreaserFunX, test_key, Server).\n\u003e ok = depcache:flush(test_key, Server).\n\u003e 2 = depcache:memo(IncreaserFunX, test_key, Server).\n\u003e ok = depcache:flush(Server).\n% stop depcache\n\u003e ok = gen_server:stop(Server, normal, 1).\n\u003e f().\n```\n\n```\n\u003e {ok, Server} = depcache:start_link([]).\n\u003e rd(memo, {value, max_age, deps=[]}).\n\u003e IncreaseFun = fun(X) -\u003e\n    I = case erlang:get(X) of\n            undefined -\u003e 1;\n            Num -\u003e Num + 1\n        end,\n    erlang:put(X, I),\n    I end.\n\u003e Fun = fun() -\u003e V = IncreaseFun(y), #memo{value=V, deps=[dep]} end.\n\u003e Fun = fun() -\u003e {dep, V = IncreaseFun(ok)}, #memo{value=V, deps=[dep]} end.\n\u003e depcache:memo(Fun, test_key, Server).\n\u003e {ok, 1} = depcache:get(test_key1, Server).\n\u003e depcache:get(test_key1, dep, Server).\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustkas%2Fdepcache_terminal_examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frustkas%2Fdepcache_terminal_examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustkas%2Fdepcache_terminal_examples/lists"}