Library to keep track of changes to Clojure source files
Clojure
Latest commit 3de0c1a May 13, 2015 @weavejester Release 0.3.0
Permalink
Failed to load latest commit information.
src/ns_tracker Handle vector libspecs in ns declaration in the same way as list ones Apr 25, 2015
test/ns_tracker/test Remove debug println from tests May 12, 2015
.gitignore Added .lein-repl-history to .gitignore Feb 2, 2013
.travis.yml
README.md Release 0.3.0 May 12, 2015
project.clj Release 0.3.0 May 12, 2015

README.md

ns-tracker

Build Status

ns-tracker is a Clojure library for keeping track of changes to source files and their associated namespaces. This is usually used to automatically reload modified namespaces in a running Clojure application.

It is derived from code in Stuart Sierra's Lazytest tool, and the credit for writing the vast majority of the code used in this library should therefore go to him.

Installation

As usual, to use this library, add the following dependency to your project.clj file:

[ns-tracker "0.3.0"]

Usage

Use the ns-tracker.core/ns-tracker function to create a new tracker function for one or more source directories:

(use 'ns-tracker.core)

(def modified-namespaces
  (ns-tracker ["src" "test"]))

When you call the modified-namespaces function, it will return a list of Clojure namespaces that have changed. You can then reload them on the fly:

(doseq [ns-sym (modified-namespaces)]
  (require ns-sym :reload))

This can be placed in a background thread, or triggered by some user request.

License

Copyright © 2015 James Reeves, Stuart Sierra

Distributed under the Eclipse Public License.