aasm_statecharts 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +74 -0
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e89b5b44cb179e336bb467bbe9c0af6198cbb4f5
4
- data.tar.gz: cea3f2ae3f920efe4a13e8d47d71566215248c43
3
+ metadata.gz: 68fbc4a0762a4458ef3f23516302bb7a4f637064
4
+ data.tar.gz: a6b4caa74d5316079f486f2411e7c8dfb45af463
5
5
  SHA512:
6
- metadata.gz: 437de932bc28fc77a87015af178618b023fb70e8de11ea407f25885b59b809277c9dbebf57094380952b1e540d8f98d8396a3286dc87ac040101bd5e481ea339
7
- data.tar.gz: bf0f765d8eb824967cbcceb54139b1e8020088f741bb2eb7f718014236eb779cc24fca8c68191e200b82176f99f5f0d0e9ca270c909c9c8c5af9cd4421c9bb0c
6
+ metadata.gz: 40b731b6d28475247efde04ef95c387e841c61e07da0c7bda88b35d3a558d11435075a0cac763f19f4c490d192b2c14dbe53636d88bccf1d607a12f95289f019
7
+ data.tar.gz: 02392dabebb21d3b78949bed760b7df41a381af2d20f2c7c21db5893c351a0cb916b6e2b56a252d7db17700d797502685f6c83338bdc655d72c818c7930b5d08
data/README.md CHANGED
@@ -0,0 +1,74 @@
1
+ aasm_statecharts
2
+ ================
3
+
4
+ `aasm_statecharts` is a utility for generating UML statechart diagrams from state machines defined using [AASM](https://github.com/aasm/aasm). Unlike other state diagram generators, it can express extended finite state machine concepts such as guards and entry actions.
5
+
6
+ Installation and Invokation
7
+ ---------------------------
8
+
9
+ You can install `aasm_statecharts` from RubyGems using `gem install aasm_statecharts`, or add the `aasm_statecharts` gem to your Gemfile and run Bundler to install it.
10
+
11
+ If you have installed `aasm_statecharts` via gem, you can invoke it using the command `aasm_statecharts`; otherwise, if you have used Bundler without generating binstubs, you can invoke it with the command `bundle exec aasm_statecharts`. The following assumes that it has been installed via gem for simplicity.
12
+
13
+ Example
14
+ -------
15
+
16
+ Considuer following model, which is assumed to be stored in `app/models/claim.rb`:
17
+ ```rb
18
+ class Claim < ActiveRecord::Base
19
+ belongs_to :user
20
+ validates :title, presence: true
21
+ validates :description, presence: true
22
+
23
+ include AASM
24
+
25
+ aasm do
26
+ state :unsubmitted, initial: true
27
+ state :submitted, exit: [:cancel_deadline, :close_ticket]
28
+ state :resolved, final: true
29
+
30
+ event :submit do
31
+ transitions from: :unsubmitted, to: :submitted,
32
+ guard: :accepting_claims?,
33
+ on_transition: :notify_submitted
34
+ end
35
+ event :return do
36
+ transitions from: :submitted, to: :unsubmitted
37
+ end
38
+ event :accept do
39
+ transitions from: :submitted, to: :resolved
40
+ end
41
+ end
42
+
43
+ def accepting_claims?
44
+ end
45
+
46
+ def cancel_deadline
47
+ end
48
+
49
+ def close_ticket
50
+ end
51
+
52
+ def notify_submitted
53
+ end
54
+ end
55
+ ```
56
+
57
+ If we invoke `aasm_statecharts claim`, then the following diagram will be written to ./doc/claim.png:
58
+
59
+ ![Claim Statechart](https://raw.githubusercontent.com/WorkflowsOnRails/aasm_statecharts/master/doc/claim.png)
60
+
61
+
62
+ Usage
63
+ -----
64
+
65
+ For more advanced usage information, see `aasm_statecharts --help`:
66
+
67
+ Usage: aasm_statecharts [options] <model> [models ...]
68
+ -a, --all Render all models using AASM
69
+ -d, --directory directory Output to a specific directory (default: ./doc)
70
+ -t, --file-type type Output in the specified format (default: png),
71
+ which must be one of the following: bmp, canon, dot, xdot, cmap, dia, eps, fig, gd,
72
+ gd2, gif, gtk, hpgl, ico, imap, cmapx, imap_np, cmapx_np, ismap, jpeg, jpg, jpe, mif,
73
+ mp, pcl, pdf, pic, plain, plain-ext, png, ps, ps2, svg, svgz, tga, tiff, tif, vml,
74
+ vmlz, vrml, vtx, wbmp, xlib, none.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aasm_statecharts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brendan MacDonell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-18 00:00:00.000000000 Z
11
+ date: 2014-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails