just_state_machine 0.4.0 → 0.4.1

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 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