Skip to content

Releases: iacobson/ecspanse

v0.10.0

25 Sep 16:58
01eb86c
Compare
Choose a tag to compare

Features

  • introduces Ecspanse.Snapshot to enable custom save and load functionalities.
    • use Ecspanse accepts now the :version option to ensure backwards compatibility when restoring entities and resources.
    • use Ecspanse.Component and use Ecspanse.Resource accept now the :export_filter option.
  • new guides section for save and load.

v0.9.0

01 Apr 13:15
997e08c
Compare
Choose a tag to compare

Breaking

  • removes Ecspanse.Resource.State in favor of Ecspanse.State functionality.

Features

  • allows inserting resources at startup with Ecspanse.insert_resource/2
  • allows state init at startup with Ecspanse.init_state/2
  • introduces Ecspanse.State state functionalities. See the breaking changes for more details.
  • new library built-in Ecspanse.Event.StateTransition event
  • new library built-in Ecspanse.Component.Name component

Improvements

  • Ecspanse.Query.entity_exists?/1 to check if an entity still exists
  • Ecspanse.Command.add_and_fetch_component!/2 wrapper to return a component after creation
  • Ecspanse.Command.update_and_fetch_component!/2 wrapper to return a component after update

v0.8.1

22 Dec 20:15
2eb2f0e
Compare
Choose a tag to compare

Improvements

  • returns an explicit error message when trying to run queries or create events and the Ecspanse server is not running.
  • documentation improvements.

v0.8.0

14 Nov 20:54
c7ca065
Compare
Choose a tag to compare

Improvements

  • refactor the Ecspanse.Projection to include the state of the projection
    • the projection result is now wraped in a Ecspanse.Projection{} struct, together with the projection state.
    • the c:Ecspanse.Projection.project/1 callback returns now the projection state as well as the projection result.

Breaking

  • the Projection.run?/2 callback has been removed. The functionality is now handled by the c:Ecspanse.Projection.project/1 callback, by returning :halt.
  • the c:Ecspanse.Projection.project/1 callback should now return also the state of the projection. See the documentation for more details.
  • the c:Ecspanse.Projection.on_change/3 callback takes as second and third argument the t:Ecspanse.Projection.t/0.
  • the c:Ecspanse.Projection.get!/1 callback now returns a t:Ecspanse.Projection.t/0.

v0.7.3

13 Nov 20:50
012c51e
Compare
Choose a tag to compare

Improvements

  • implement the c:Ecspanse.Projection.run?/2 optional callback to run projections conditionally.

v0.7.2

05 Nov 19:45
868effd
Compare
Choose a tag to compare

Improvements

  • c:Ecspanse.Projection.on_change/3 is called on Projection server initialization.

v0.7.1

07 Oct 14:15
e023d7e
Compare
Choose a tag to compare

Improvements

  • Ecspanse.Command.clone_entity!/2 and Ecspanse.Command.deep_clone_entity!/2 now accept an :id option to set the id of the cloned entity.

v0.7.0

05 Oct 21:39
0729303
Compare
Choose a tag to compare

Breaking

  • Ecspanse.Projection.on_change/3 replaces the on_change/2callback and now takes both the new projection as well as the previous projection as arguments.

Improvements

  • updating projections after all frame systems have run to return a consistent state.

v0.6.0

02 Oct 21:03
3816b35
Compare
Choose a tag to compare

Features

  • introduces Ecspanse.Projection to build state projections across entities and components.

v0.5.0

28 Sep 20:21
4f49f45
Compare
Choose a tag to compare

Features

  • introducing ancestors queries to query for parents of an entity, the parents of parents, and so on:
    • Ecspanse.Query.select/2 new option: :for_ancestors_of
    • Ecspanse.Query.list_ancestors/1
    • Ecspanse.Query.list_tagged_components_for_ancestors/2