Skip to content

Instantly share code, notes, and snippets.

@sogaiu
Created December 21, 2018 08:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sogaiu/44e69fa39606264b3c3581323640a213 to your computer and use it in GitHub Desktop.
Save sogaiu/44e69fa39606264b3c3581323640a213 to your computer and use it in GitHub Desktop.
trying arcadia.internal.tracker's track and history functionality
;; see top of arcadia/internal/tracker.clj for more info on usage
user=> (require '[arcadia.internal.tracker])
nil
;; track a fn (via a var)
user=> (arcadia.internal.tracker/track #'arcadia.internal.leiningen/project-data-loadpath)
#'arcadia.internal.leiningen/project-data-loadpath
;; calling a fn which calls the tracked fn
user=> (arcadia.internal.leiningen/leiningen-loadpaths)
WARNING: (slurp f enc) is deprecated, use (slurp f :encoding enc).
WARNING: (slurp f enc) is deprecated, use (slurp f :encoding enc).
WARNING: (slurp f enc) is deprecated, use (slurp f :encoding enc).
WARNING: (slurp f enc) is deprecated, use (slurp f :encoding enc).
("...specter-test/Assets/riddley/src" "...specter-test/Assets/specter/src/clj")
user=> (require '[clojure.pprint :as pp])
nil
;; observe the history of the tracking
user=> (pp/pprint (arcadia.internal.tracker/history))
(#:arcadia.internal.tracker{:time
#inst "2018-12-21T17:43:11.368-00:00",
:args
({:arcadia.internal.file-system/path
"...specter-test/Assets/riddley",
:arcadia.internal.leiningen/defproject
{:arcadia.internal.file-system/path
"...specter-test/Assets/riddley/project.clj",
:arcadia.internal.leiningen/name
riddley,
:arcadia.internal.leiningen/version
"0.1.15",
:arcadia.internal.leiningen/dependencies
[],
:arcadia.internal.leiningen/body
{:description
"code-walking without caveats",
:license
{:name "MIT License",
:url
"http://opensource.org/licenses/MIT"},
:java-source-paths ["src/riddley"],
:javac-options
["-target" "1.6" "-source" "1.6"],
:plugins [[lein-codox "0.9.4"]],
:profiles
{:provided
{:dependencies
[[org.clojure/clojure "1.8.0"]]}},
:dependencies [],
:codox
{:src-dir-uri
"https://github.com/ztellman/riddley/tree/master/",
:src-linenum-anchor-prefix "L",
:defaults #:doc{:format :markdown},
:include
[riddley.walk riddley.compiler],
:output-dir "doc"}}}}),
:var
#'arcadia.internal.leiningen/project-data-loadpath}
#:arcadia.internal.tracker{:time
#inst "2018-12-21T17:43:11.368-00:00",
:args
({:arcadia.internal.file-system/path
"...specter-test/Assets/specter",
:arcadia.internal.leiningen/defproject
{:arcadia.internal.file-system/path
"...specter-test/Assets/specter/project.clj",
:arcadia.internal.leiningen/name
com.rpl/specter,
:arcadia.internal.leiningen/version
VERSION,
:arcadia.internal.leiningen/dependencies
[[riddley "0.1.12"]],
:arcadia.internal.leiningen/body
{:source-paths ["src/clj"],
:test-paths
["test" "target/test-classes"],
:cljsbuild
{:builds
[{:id "test-build",
:source-paths
["src/clj" "target/classes" "test"],
:compiler
{:output-to "out/testable.js",
:main
'com.rpl.specter.cljs-test-runner,
:target :nodejs,
:optimizations :none}}]},
:auto-clean false,
:java-source-paths ["src/java"],
:plugins
[[lein-codox "0.9.5"]
[lein-doo "0.1.7"]],
:profiles
{:dev
{:dependencies
[[org.clojure/test.check "0.9.0"]
[org.clojure/clojure "1.9.0"]
[org.clojure/clojurescript
"1.10.439"]]},
:bench
{:dependencies
[[org.clojure/clojure "1.9.0"]
[criterium "0.4.4"]]},
:test
{:dependencies
[[org.clojure/clojure "1.7.0"]]}},
:aliases
{"deploy"
["do" "clean," "deploy" "clojars"]},
:jvm-opts
["-XX:-OmitStackTraceInFastThrow"],
:dependencies [[riddley "0.1.12"]],
:codox
{:source-paths
["target/classes" "src/clj"],
:namespaces
[com.rpl.specter
com.rpl.specter.zipper
com.rpl.specter.protocols
com.rpl.specter.transients],
:source-uri
{#"target/classes"
"https://github.com/nathanmarz/specter/tree/{version}/src/clj/{classpath}x#L{line}",
#".*"
"https://github.com/nathanmarz/specter/tree/{version}/src/clj/{classpath}#L{line}"}}}}}),
:var
#'arcadia.internal.leiningen/project-data-loadpath})
nil
user=>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment