just_state_machine 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b8088d7c136243526d1a99b0353c9b5068efb6e3
4
- data.tar.gz: f88ff999ee19e0c5fa41516999fe1a8e5fcd2f6d
3
+ metadata.gz: 6dd85cf3308e7d6f0527471ab0fe85945e991327
4
+ data.tar.gz: 68c3b37cbae7d79ea3cbad4dd89cb8e2b3cb149e
5
5
  SHA512:
6
- metadata.gz: b1200277a06f2a0da8313ff057f5237dfa71f1a3a6d5c4064ca7f9303cb655b44e545b8dc10e704b88b45b93742fdef3f498d206ab4c0fd73beaef57646d45b9
7
- data.tar.gz: 1cd99d024ea0f880460e103ed6c8b8f0f0f3c3ad91d3fa4db37cca3672c217679c6327bdafa39677c0526380d6b9bf22a442c189e53de74a4890b884333c5e80
6
+ metadata.gz: d99607447c78028062f5681c6e3dd6ecfa7e8e3d728b491db51ee17cce8847f56cb90a0051950b4e83d832e4fa13a39c63824dbc787587be348ad7ebea5d4d61
7
+ data.tar.gz: 19aef30e55e7650abc00cc19d832ee3462545931ae5e451eaec1eca468d8ef3ea5dbca6528c7151af29a51981b7ae687acb57ab6c8410cda76dec3ccd9b61880
data/README.md CHANGED
@@ -29,6 +29,7 @@ To use `JSM`, a state machine class need to be created. Define your state machin
29
29
  * transition
30
30
  * state validation
31
31
  * attribute(the client state value)
32
+ * callback
32
33
 
33
34
  ```ruby
34
35
  class UserStateMachine < Jsm::Base
@@ -340,10 +341,9 @@ class UserStateMachine < Jsm::Base
340
341
  end
341
342
 
342
343
  # Client Class
343
- class User
344
- include ActiveModel::Model
344
+ class User < ActiveRecord::Base
345
345
  include Jsm::Client
346
- include Jsm::Client::ActiveModel
346
+ include Jsm::Client::ActiveRecord
347
347
  jsm_use UserStateMachine # your state machine class here
348
348
 
349
349
  attr_accessor :title # same with attribute_name in UserStateMachine
data/lib/jsm/base.rb CHANGED
@@ -20,21 +20,18 @@ class Jsm::Base
20
20
  # example:
21
21
  # state :x, initial: true
22
22
  def self.state(name, params = {})
23
- @states ||= Jsm::States.new
24
- @states.add_state(name, initial: params[:initial])
23
+ raw_states.add_state(name, initial: params[:initial])
25
24
  end
26
25
 
27
26
  # list of all states
28
27
  def self.states
29
- @states.list
28
+ raw_states.list
30
29
  end
31
30
 
32
31
  # return initial_state
33
32
  # if empty return nil
34
33
  def self.initial_state
35
- if @states
36
- @states.initial_state
37
- end
34
+ raw_states.initial_state
38
35
  end
39
36
 
40
37
  # add new event to the class and add its transition
@@ -53,7 +50,7 @@ class Jsm::Base
53
50
 
54
51
  # get list of all events
55
52
  def self.events
56
- @events
53
+ @events ||= {}
57
54
  end
58
55
 
59
56
  # add validation of a state(when changes to the targeted state, check whether passed this validation or not)
@@ -64,7 +61,7 @@ class Jsm::Base
64
61
  # end
65
62
  def self.validate(state_name, &block)
66
63
  unless @states.has_state?(state_name)
67
- raise Jsm::InvalidStateError, "there is no state y"
64
+ raise Jsm::InvalidStateError, "there is no state #{state_name}"
68
65
  end
69
66
 
70
67
  validators.add_validator(state_name, Jsm::Validator.new(:state, state_name, &block))
@@ -81,6 +78,10 @@ class Jsm::Base
81
78
  end
82
79
  end
83
80
 
81
+ def self.raw_states
82
+ @states ||= Jsm::States.new
83
+ end
84
+
84
85
  def initialize(klass)
85
86
  @klass = klass
86
87
  Jsm::ClientExtension.decorate(@klass, state_machine: self.class)
@@ -24,7 +24,6 @@
24
24
 
25
25
  class Jsm::Callbacks::Chain
26
26
  attr_reader :context, :callbacks
27
- FILTER_TYPES_POSITION = [:before, :after]
28
27
  def initialize(context)
29
28
  @context = context
30
29
  @callbacks = []
data/lib/jsm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jsm
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
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.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - wendy0402
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-31 00:00:00.000000000 Z
11
+ date: 2015-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler