stateful.rb 0.14.2 → 0.14.9

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
  SHA256:
3
- metadata.gz: c8bee17b4fed729bf32325ec72f662a7175e8b267f944354b7ace17245a12e99
4
- data.tar.gz: '039f8fb6263d7df0dd86b5e2f5140ea1c836197b7fdee00758d1ab104a9cb1ba'
3
+ metadata.gz: faf29ed4e3307bdd9dcd36b495f7e79d5d994f5ab246e788a5f15a602abda118
4
+ data.tar.gz: ca78f276718cd475c2442162246709b7768390bd413c276e7f97aa9e73b467ba
5
5
  SHA512:
6
- metadata.gz: b16d65a49c0dc0cd613a31f50f7afb005634a7c806bfd5b072ceef00742e9d35216d5b59695284caf0cf2330f6a70eb124c23b69355f9907dd73498afe9fa0f4
7
- data.tar.gz: 0b145b211f8ce4d022599e5f24d48f410744e13886d7b24542573873ea5d733ee5b5d4d47a1b472ade695a725057e751f34e1a87280ec7b147450eac93e401f3
6
+ metadata.gz: 90cb00e9c62ea416cbb7f53b61698d6cb1606376b6c2061c83de25ce2ed9e032b77530cddd8d7333f90b4f211973cfef254784e9d2b115a4e02c9de9f31b7822
7
+ data.tar.gz: b6b4d4e1bc0730b40e9dbe32d97568f2f0ed4e8a64750f3dc17544159fe461401beb405c443c52ad21a7c261901787a6d6cd9170656c227852756d0f64618330
data/lib/Stateful.rb CHANGED
@@ -1,56 +1,19 @@
1
1
  # Stateful.rb
2
2
  # Stateful
3
3
 
4
- require_relative File.join('Stateful', 'ClassMethods')
5
- require_relative File.join('Stateful', 'InstanceMethods')
6
-
7
4
  module Stateful
8
5
 
9
6
  class << self
10
7
 
11
- def set_column_name(klass)
12
- if defined?(::ActiveRecord::Base) && klass < ::ActiveRecord::Base
13
- unless klass.instance_variable_get(:@stateful_column_name)
14
- klass.instance_variable_set(:@stateful_column_name, 'current_state')
15
- end
16
- else
17
- unless klass.instance_variable_get(:@stateful_variable_name)
18
- klass.instance_variable_set(:@stateful_variable_name, 'current_state')
19
- end
20
- end
21
- end
22
-
23
- def load_persistence_class_methods(klass)
8
+ def extended(klass)
24
9
  if defined?(::ActiveRecord::Base) && klass < ::ActiveRecord::Base
25
10
  require_relative File.join('Stateful', 'ActiveRecord')
26
- klass.extend(Stateful::ActiveRecord::ClassMethods)
11
+ klass.extend(Stateful::ActiveRecord)
27
12
  else
28
13
  require_relative File.join('Stateful', 'Poro')
29
- klass.extend(Stateful::Poro::ClassMethods)
14
+ klass.extend(Stateful::Poro)
30
15
  end
31
16
  end
32
-
33
- def define_instance_methods(klass)
34
- if defined?(::ActiveRecord::Base) && klass < ::ActiveRecord::Base
35
- klass.define_stateful_column_name_setter_method
36
- klass.define_stateful_column_name_getter_method
37
- else
38
- klass.define_stateful_variable_name_setter_method
39
- klass.define_stateful_variable_name_getter_method
40
- end
41
- klass.define_next_state_method
42
- klass.define_transitions_method
43
- klass.define_initial_stateQ_method
44
- klass.define_final_stateQ_method
45
- end
46
-
47
- def extended(klass)
48
- klass.extend(Stateful::ClassMethods)
49
- klass.send(:include, Stateful::InstanceMethods)
50
- set_column_name(klass)
51
- load_persistence_class_methods(klass)
52
- define_instance_methods(klass)
53
- end
54
17
  alias_method :included, :extended
55
18
 
56
19
  end # class << self
@@ -1,7 +1,8 @@
1
1
  # Stateful/ActiveRecord.rb
2
2
  # Stateful::ActiveRecord
3
3
 
4
- require_relative File.join('..', 'Stateful')
4
+ require_relative 'ClassMethods'
5
+ require_relative 'InstanceMethods'
5
6
  require_relative File.join('ActiveRecord', 'ClassMethods')
6
7
 
7
8
  module Stateful
@@ -22,7 +22,7 @@ module Stateful
22
22
  end
23
23
  end
24
24
 
25
- def define_status_boolean_method(state_name)
25
+ def define_status_predicate_method(state_name)
26
26
  stateful_column_name = self.instance_variable_get(:@stateful_column_name)
27
27
  define_method("#{state_name}?") do
28
28
  self.send(stateful_column_name).name == state_name
@@ -12,10 +12,18 @@ module Stateful
12
12
 
13
13
  # start DSL
14
14
 
15
+ def stateful(options = {}, &block)
16
+ stateful_states.stateful(options, &block)
17
+ end
18
+
15
19
  def initial_state(state_name = nil, options = {}, &block)
16
20
  stateful_states.initial_state(state_name, options, &block)
17
21
  end
18
22
 
23
+ def state(state_name, options = {}, &block)
24
+ stateful_states.state(state_name, options, &block)
25
+ end
26
+
19
27
  def final_state(*state_names)
20
28
  stateful_states.final_state(*state_names)
21
29
  end
@@ -24,17 +32,9 @@ module Stateful
24
32
  stateful_states.final_states(*state_names)
25
33
  end
26
34
 
27
- def state(state_name, options = {}, &block)
28
- stateful_states.state(state_name, options, &block)
29
- end
30
-
31
- def stateful(options = {}, &block)
32
- stateful_states.stateful(options, &block)
33
- end
34
-
35
35
  # end DSL
36
36
 
37
- # boolean methods
37
+ # predicate methods
38
38
 
39
39
  def final_state?
40
40
  !final_states.empty?
@@ -20,7 +20,7 @@ module Stateful
20
20
  self.class.final_states
21
21
  end
22
22
 
23
- # boolean methods
23
+ # predicate methods
24
24
 
25
25
  def active?
26
26
  !final_state?
data/lib/Stateful/Poro.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  # Stateful/Poro.rb
2
2
  # Stateful::Poro
3
3
 
4
- require_relative File.join('..', 'Stateful')
4
+ require_relative 'ClassMethods'
5
+ require_relative 'InstanceMethods'
5
6
  require_relative File.join('Poro', 'ClassMethods')
6
7
 
7
8
  module Stateful
@@ -22,7 +22,7 @@ module Stateful
22
22
  end
23
23
  end
24
24
 
25
- def define_status_boolean_method(state_name)
25
+ def define_status_predicate_method(state_name)
26
26
  stateful_variable_name = self.instance_variable_get(:@stateful_variable_name)
27
27
  define_method("#{state_name}?") do
28
28
  self.send(stateful_variable_name).name == state_name
@@ -79,7 +79,7 @@ module Stateful
79
79
  state.transitions.each do |transition|
80
80
  @klass.define_event_method(transition)
81
81
  end
82
- @klass.define_status_boolean_method(state_name)
82
+ @klass.define_status_predicate_method(state_name)
83
83
  state
84
84
  end
85
85
 
@@ -1,5 +1,5 @@
1
1
  module Stateful
2
2
 
3
- VERSION = '0.14.2'
3
+ VERSION = '0.14.9'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,15 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stateful.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.2
4
+ version: 0.14.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - thoran
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-02 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2019-12-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest-spec-context
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activerecord
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pg
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'
13
69
  description: Easily add state and manage it with Poro and ActiveRecord objects.
14
70
  email: code@thoran.com
15
71
  executables: []
@@ -47,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
103
  - !ruby/object:Gem::Version
48
104
  version: '0'
49
105
  requirements: []
50
- rubygems_version: 3.0.3
106
+ rubygems_version: 3.1.0.pre3
51
107
  signing_key:
52
108
  specification_version: 4
53
109
  summary: A Ruby state machine.