just_state_machine 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +3 -1
- data/Gemfile +3 -0
- data/README.md +15 -7
- data/jsm.gemspec +0 -4
- data/lib/jsm/client/mongoid.rb +13 -0
- data/lib/jsm/event_executor/mongoid.rb +8 -0
- data/lib/jsm/version.rb +1 -1
- data/lib/jsm.rb +2 -0
- metadata +5 -60
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bea90384d740dd075bfb0b5d400e41084f597f53
|
4
|
+
data.tar.gz: b52626d217f4edb98347a69347557e500726f448
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d19600b177bffcd272896b885d3bf698200a8578dd888219974f589107ace8ef2b9a204f9644bde4aab9472f88ddbc8b0827acc220973a1e31c4bcd58b633fd6
|
7
|
+
data.tar.gz: 45c3bc2b561c31fe66dce779a088e73f977e3dba6dc586e70d6d95e58febb4bc0a68e3fd885d4ee21c62c128537c26145998ddadbcc5deb898fb83eed6ba9ee3
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -346,12 +346,7 @@ class User < ActiveRecord::Base
|
|
346
346
|
include Jsm::Client::ActiveRecord
|
347
347
|
jsm_use UserStateMachine # your state machine class here
|
348
348
|
|
349
|
-
|
350
|
-
attr_accessor :level
|
351
|
-
def initialize
|
352
|
-
@title = :beginner
|
353
|
-
@level = 1
|
354
|
-
end
|
349
|
+
# attributes -> title, level
|
355
350
|
#your code here
|
356
351
|
end
|
357
352
|
```
|
@@ -360,7 +355,20 @@ end
|
|
360
355
|
|
361
356
|
## Mongoid Integration
|
362
357
|
|
363
|
-
Mongoid
|
358
|
+
Mongoid is same with active record. you just need to change the client from `Jsm::Client::ActiveRecord` to `Jsm::Client::Mongoid`
|
359
|
+
example:
|
360
|
+
```ruby
|
361
|
+
class UserMongoid
|
362
|
+
include Mongoid::Document
|
363
|
+
include Jsm::Client
|
364
|
+
include Jsm::Client::Mongoid
|
365
|
+
jsm_use UserStateMachine # your state machine class here
|
366
|
+
|
367
|
+
field :title, type: String # same with attribute_name in UserStateMachine
|
368
|
+
field :level, type: String
|
369
|
+
#your code here
|
370
|
+
end
|
371
|
+
```
|
364
372
|
|
365
373
|
## StateMachine Visualization
|
366
374
|
When you want to visualize the state machine that has been defined. You can use the `Jsm::Drawer:Graphviz`. Basically it will generate an url for images of states diagram with theirs events. Basically the image is generated by `google chart`. They provide a really good API to generate state diagram.
|
data/jsm.gemspec
CHANGED
@@ -23,9 +23,5 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
25
|
spec.add_development_dependency "rspec"
|
26
|
-
spec.add_development_dependency "pry"
|
27
|
-
spec.add_development_dependency "pry-doc"
|
28
|
-
spec.add_development_dependency "looksee"
|
29
26
|
spec.add_development_dependency "activerecord", ">= 4.0"
|
30
|
-
spec.add_development_dependency "sqlite3"
|
31
27
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Jsm::Client::Mongoid
|
2
|
+
def self.included(base)
|
3
|
+
base.extend ClassMethods
|
4
|
+
# Basically ActiveModel and ActiveRecord almost have the same behavior for its instance
|
5
|
+
base.send(:include, Jsm::Client::ActiveModel::InstanceMethods)
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def jsm_event_executor
|
10
|
+
Jsm::EventExecutor::Mongoid
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/jsm/version.rb
CHANGED
data/lib/jsm.rb
CHANGED
@@ -7,6 +7,7 @@ module Jsm
|
|
7
7
|
require "jsm/event_executor/base"
|
8
8
|
require "jsm/event_executor/active_model"
|
9
9
|
require "jsm/event_executor/active_record"
|
10
|
+
require "jsm/event_executor/mongoid"
|
10
11
|
end
|
11
12
|
|
12
13
|
require "jsm/callbacks"
|
@@ -19,6 +20,7 @@ module Jsm
|
|
19
20
|
require "jsm/client"
|
20
21
|
require "jsm/client/active_model"
|
21
22
|
require "jsm/client/active_record"
|
23
|
+
require "jsm/client/mongoid"
|
22
24
|
require "jsm/machines"
|
23
25
|
require "jsm/client_extension"
|
24
26
|
require "jsm/validator"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: just_state_machine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wendy0402
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,48 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: pry
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: pry-doc
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: looksee
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
55
|
- !ruby/object:Gem::Dependency
|
98
56
|
name: activerecord
|
99
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,20 +66,6 @@ dependencies:
|
|
108
66
|
- - ">="
|
109
67
|
- !ruby/object:Gem::Version
|
110
68
|
version: '4.0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: sqlite3
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
69
|
description: Just StateMachine
|
126
70
|
email:
|
127
71
|
- wendykurniawan92@gmail.com
|
@@ -151,6 +95,7 @@ files:
|
|
151
95
|
- lib/jsm/client.rb
|
152
96
|
- lib/jsm/client/active_model.rb
|
153
97
|
- lib/jsm/client/active_record.rb
|
98
|
+
- lib/jsm/client/mongoid.rb
|
154
99
|
- lib/jsm/client_extension.rb
|
155
100
|
- lib/jsm/drawer/digraph.rb
|
156
101
|
- lib/jsm/drawer/graphviz.rb
|
@@ -159,6 +104,7 @@ files:
|
|
159
104
|
- lib/jsm/event_executor/active_model.rb
|
160
105
|
- lib/jsm/event_executor/active_record.rb
|
161
106
|
- lib/jsm/event_executor/base.rb
|
107
|
+
- lib/jsm/event_executor/mongoid.rb
|
162
108
|
- lib/jsm/exceptions.rb
|
163
109
|
- lib/jsm/machines.rb
|
164
110
|
- lib/jsm/states.rb
|
@@ -186,10 +132,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
132
|
version: '0'
|
187
133
|
requirements: []
|
188
134
|
rubyforge_project:
|
189
|
-
rubygems_version: 2.
|
135
|
+
rubygems_version: 2.6.8
|
190
136
|
signing_key:
|
191
137
|
specification_version: 4
|
192
138
|
summary: Just State Machine, State Machine That support custom validations, it also
|
193
139
|
known with Jsm
|
194
140
|
test_files: []
|
195
|
-
has_rdoc:
|