Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/just-sultanov/clj-fsm
[Experimental] A Finite state machine (FSM) for Clojure(Script)
https://github.com/just-sultanov/clj-fsm
clojure clojurescript finite-state-machine fsm
Last synced: 24 days ago
JSON representation
[Experimental] A Finite state machine (FSM) for Clojure(Script)
- Host: GitHub
- URL: https://github.com/just-sultanov/clj-fsm
- Owner: just-sultanov
- License: mit
- Created: 2019-10-16T19:02:02.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2019-10-23T20:10:41.000Z (about 5 years ago)
- Last Synced: 2024-09-30T08:04:40.608Z (about 1 month ago)
- Topics: clojure, clojurescript, finite-state-machine, fsm
- Language: Clojure
- Homepage:
- Size: 123 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
image:https://img.shields.io/github/license/just-sultanov/clj-fsm[License,link=LICENSE]
image:https://codecov.io/gh/just-sultanov/clj-fsm/branch/master/graph/badge.svg[Codecov,link=https://codecov.io/gh/just-sultanov/clj-fsm]
image:https://github.com/just-sultanov/clj-fsm/workflows/build/badge.svg[Build]
image:https://github.com/just-sultanov/clj-fsm/workflows/deploy/badge.svg[Deploy]
image:https://img.shields.io/clojars/v/clj-fsm.svg[Clojars, link=https://clojars.org/clj-fsm]== clj-fsm
Finite state machine (FSM) for Clojure(Script).
STATUS: Pre-alpha, in design and prototyping phase.
=== Quick Start Guide
Add the following dependency in your project:
[source,clojure]
----
;; project.clj or build.boot
[clj-fsm "RELEASE"];; deps.edn
{:deps {clj-fsm {:mvn/version "RELEASE"}}}----
=== Examples
You can see full examples link:example/src/clj_fsm/example.cljc[here].
=== Development
[source,bash]
----
# Run nREPL & connect from your IDE
$ make repl
nREPL server started on port 7888 on host localhost - nrepl://localhost:7888
----=== Testing
[source,bash]
----
# Run Clojure tests
$ make test-clj# Run ClojureScript tests
$ make test-cljs# Run Clojure & ClojureScript tests
$ make test
----=== Deploy
[source,bash]
----
# commit all changes then
# create a new git tag (available types `minor`, `major`)
$ make patch# push a new git tag to Github then wait for GitHub Actions
# start to deploy the new version to clojars
$ git push origin --tags
----=== Available commands
[source,bash]
----
$ make help
help Show help
repl Run nREPL
clean Clean
lint Run linter
test-clj Run Clojure tests
test-cljs Run ClojureScript tests
test Run all tests
build Build jar
init Init first version
patch Increment patch version
minor Increment minor version
major Increment major version
deploy Deploy to clojars
----==== Changelog
TBD
==== License
link:LICENSE[Copyright © 2019 Ilshat Sultanov]