eventful.rb 1.0.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: a3a6b9667391f457f0da31208acab094361ea4103831ead56ba1f6d39212b295
4
- data.tar.gz: 0d22261339383552cac730a0b11f88adc5b661bded106cd763610f6daa7febc6
3
+ metadata.gz: 3017b588c0d922e9152066810cefb7382bd09a5b18c9c0856224c295f8634061
4
+ data.tar.gz: 74e3d2f8d3a031580295982a0bafcaabdb87832d44451a0dab26e6a43e4be03b
5
5
  SHA512:
6
- metadata.gz: 497fb54c3fa47a91b797ff119ac732d755f0de5f73470c3d825101195a53229b4804c4e6226eac236d24617b428b29e821672607b7fd6fe2d528b0452911eda6
7
- data.tar.gz: 43ffedea3742796da98af3fa96e95a20c5039b2b3f73863e031cd0062ca2cc462f635e9b48b3ec369252984412d6d87bb2af0a4557bcbbc6d6cbd26b3e383271
6
+ metadata.gz: d99334183a1dbaacff20a11ed85f548358c6b313edfb9bb0c7cb13a4a6282f41a836cc6b13cb92a9e5190865816be37960b4c91f1e648ea8464d31cac5004eee
7
+ data.tar.gz: a686f359f285a2bdec9260b42f8111f5196e4ea84bdedcf688f314a3902c279558b8cae91f124b5d6af494fcacb5f9bce4f985c50f96e0ea030a5f686304e65d
@@ -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 = '1.0.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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventful.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thoran
@@ -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
@@ -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