Redelay Versions Save

Clojure library for first class lifecycle-managed state.

2.0.0

2 months ago

Added

  • The defstate macro now declares the resulting var as :dynamic. This enables the use of binding in tests.
  • The State object now implements IPersistentStack, thus now supports Clojure's peek. This can be used to inspect the value, without starting it.

Changed

  • The string representation of an unrealized State object now says :unrealized instead of :not-delivered.
  • The string representation of a realized State object now adheres to a *print-length* of 10.
  • ❗️BREAKING: The low-level state* function now takes a :name key, instead of :ns-str and :name-str. The new entry must be a symbol and is still optional.
  • ❗️BREAKING: The State object now implements IReference instead of IObj. This means that with-meta support has been replaced with alter-meta! and reset-meta!. This way updating meta data does not result in a new State object anymore.
  • ❗️BREAKING: The notifications to the watchpoint now receive one of :starting, :started, :stopping or :stopped as the third argument, and the State object as the fourth argument.

Fixed

  • The defstate macro could sometimes mistake a string or map value for a docstring or attribute map. For example, this would fail (defstate foo "bar" :stop (println this)). This is now fixed.

1.1.0

3 years ago

Add close! function to stop a State by force, skipping its stop logic.

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago