eventful.rb 0.9.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb5c8bfa57d6b834228c2715d37b61d72f9d40061107621f632aed803662d46b
4
- data.tar.gz: 5bce4745f00770a41582567a50634648114ea03734bdb311e2900cb41480c679
3
+ metadata.gz: 3017b588c0d922e9152066810cefb7382bd09a5b18c9c0856224c295f8634061
4
+ data.tar.gz: 74e3d2f8d3a031580295982a0bafcaabdb87832d44451a0dab26e6a43e4be03b
5
5
  SHA512:
6
- metadata.gz: '09f959120d1e58693a555567947b50e41190ddd6ab89844b4ff009b46c0ba4ea363c52eb9bb64c7faeaf2a4a3bb120d50ba842e5f5dd8730298d49a7cd562b7b'
7
- data.tar.gz: 9521c970e9fade10d27a0b12bc753e79c7f0ef3e7e73dfcb3db50c7238f7975e00dcc92a1c8a00863cec760ae356ef05415c92b03c80eef2f14fbea15447e226
6
+ metadata.gz: d99334183a1dbaacff20a11ed85f548358c6b313edfb9bb0c7cb13a4a6282f41a836cc6b13cb92a9e5190865816be37960b4c91f1e648ea8464d31cac5004eee
7
+ data.tar.gz: a686f359f285a2bdec9260b42f8111f5196e4ea84bdedcf688f314a3902c279558b8cae91f124b5d6af494fcacb5f9bce4f985c50f96e0ea030a5f686304e65d
data/eventful.rb.gemspec CHANGED
@@ -4,7 +4,6 @@ Gem::Specification.new do |spec|
4
4
  spec.name = 'eventful.rb'
5
5
 
6
6
  spec.version = Eventful::VERSION
7
- spec.date = '2026-04-12'
8
7
 
9
8
  spec.summary = "Automatically change state with Stateful state machines."
10
9
  spec.description = "By defining predicate methods which except for the addition of '?' matches a state machine event and then configuring an in memory or cron-based event loop, the state machine will be able to change state automatically."
@@ -14,7 +13,7 @@ Gem::Specification.new do |spec|
14
13
  spec.homepage = 'http://github.com/thoran/eventful.rb'
15
14
  spec.license = 'Ruby'
16
15
 
17
- spec.required_ruby_version = '>= 1.8.6'
16
+ spec.required_ruby_version = '>= 2.5'
18
17
 
19
18
  spec.add_dependency('stateful.rb')
20
19
  spec.files = [
@@ -1,14 +1,27 @@
1
1
  # Eventful/Poro/ClassMethods.rb
2
2
  # Eventful::Poro::ClassMethods
3
3
 
4
- require_relative File.join('..', '..', 'ObjectSpace', 'self.select_objects')
5
-
6
4
  module Eventful
7
5
  module Poro
8
6
  module ClassMethods
9
7
 
8
+ def <<(instance)
9
+ instances << instance
10
+ end
11
+ alias_method :register, :<<
12
+
10
13
  def active
11
- ObjectSpace.select_objects(self){|o| o.active?}
14
+ gc
15
+ end
16
+
17
+ private
18
+
19
+ def instances
20
+ @instances ||= []
21
+ end
22
+
23
+ def gc
24
+ instances.tap{|instances| instances.reject!{|i| !i.active?}}
12
25
  end
13
26
 
14
27
  end
@@ -0,0 +1,15 @@
1
+ # Eventful/Poro/InstanceMethods.rb
2
+ # Eventful::Poro::InstanceMethods
3
+
4
+ module Eventful
5
+ module Poro
6
+ module InstanceMethods
7
+
8
+ def initialize(*)
9
+ super
10
+ self.class.register(self)
11
+ end
12
+
13
+ end
14
+ end
15
+ end
data/lib/Eventful/Poro.rb CHANGED
@@ -2,3 +2,4 @@
2
2
  # Eventful::Poro
3
3
 
4
4
  require_relative File.join('Poro', 'ClassMethods')
5
+ require_relative File.join('Poro', 'InstanceMethods')
@@ -2,5 +2,5 @@
2
2
  # Eventful::VERSION
3
3
 
4
4
  module Eventful
5
- VERSION = '0.9.0'
5
+ VERSION = '2.0.0'
6
6
  end
data/lib/Eventful.rb CHANGED
@@ -18,6 +18,7 @@ module Eventful
18
18
  else
19
19
  require_relative File.join('Eventful', 'Poro')
20
20
  klass.extend(Eventful::Poro::ClassMethods)
21
+ klass.prepend(Eventful::Poro::InstanceMethods)
21
22
  end
22
23
  end
23
24
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventful.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thoran
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-04-12 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: stateful.rb
@@ -40,8 +40,8 @@ files:
40
40
  - lib/Eventful/ClassMethods.rb
41
41
  - lib/Eventful/Poro.rb
42
42
  - lib/Eventful/Poro/ClassMethods.rb
43
+ - lib/Eventful/Poro/InstanceMethods.rb
43
44
  - lib/Eventful/VERSION.rb
44
- - lib/ObjectSpace/self.select_objects.rb
45
45
  - test/ActiveRecord.rb
46
46
  - test/ActiveRecordWhenNoFinalState.rb
47
47
  - test/Eventful.rb
@@ -57,7 +57,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 1.8.6
60
+ version: '2.5'
61
61
  required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  requirements:
63
63
  - - ">="
@@ -1,15 +0,0 @@
1
- # ObjectSpace/self.select_objects
2
- # ObjectSpace.select_objects
3
-
4
- # 20111117
5
- # 0.0.1
6
-
7
- module ObjectSpace
8
-
9
- def self.select_objects(klass = Object, &block)
10
- selected_objects = []
11
- each_object(klass){|o| selected_objects << o if block.call(o)}
12
- selected_objects
13
- end
14
-
15
- end