core-event 0.1.0 → 0.2.2

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: b0d60d72742e912882a23542ac744eae69448cf94622ccdc3c7229241e0963a6
4
- data.tar.gz: 25d56626e04b153524515122204fd2270dbec0bb7467c259ed66b26726ff6e1e
3
+ metadata.gz: e13d20e07e469eaa28b8fda8cfdb55a81e13142959f448679d51c1477f3f44f5
4
+ data.tar.gz: 43a00e18aba884d4f9bd00468856aeaf8f0c96a92dc9b50bd60be36f2ec25c83
5
5
  SHA512:
6
- metadata.gz: 68661f7866444ff3a0255dc96b837d6b7115ce478bf449890d840a461ea000673d7e7b919d78f2e681de79c031db4d6243ab0b6f01f0f5445570b46511aa31c0
7
- data.tar.gz: 6911ce75330056d954ef30ceabf67bd93a6a4dfe82160f0c83a168fa11883c5f375a2e33afcfe1239be3d26d45553fe8a0e9e773eaeb6f31c3dcc1189192263b
6
+ metadata.gz: 1899688796c6f87462b76390d9227aa2c528805b421123abe81db8c4c01ebbd824ae2b9f3006c68f366e70b39a52b950055040ccec1c591bdf20f9093ac82c09
7
+ data.tar.gz: 1ccd996291cc2cce213ad759edc0986e2b5659e65c0c5d23aff7c2883b2b466db84cd66c904a33351d256f6d748314dc6829b876659cdd013b666e3c9fdf3753
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## [v0.2.2](https://github.com/metabahn/corerb/releases/tag/2022-06-02)
2
+
3
+ *released on 2022-06-02*
4
+
5
+ * `fix` [#127](https://github.com/metabahn/corerb/pull/127) Accept all arguments in prepended finalize ([bryanp](https://github.com/bryanp))
6
+
7
+ ## [v0.2.1](https://github.com/metabahn/corerb/releases/tag/2021-11-06)
8
+
9
+ *released on 2021-11-06*
10
+
11
+ * `fix` [#106](https://github.com/metabahn/corerb/pull/106) Use pipeline controller in core-event ([bryanp](https://github.com/bryanp))
12
+
13
+ ## [v0.2.0](https://github.com/metabahn/corerb/releases/tag/2021-11-03)
14
+
15
+ *released on 2021-11-03*
16
+
17
+ * `fix` [#101](https://github.com/metabahn/corerb/pull/101) Prevent unnecessary recompiles of the event pipeline ([bryanp](https://github.com/bryanp))
18
+ * `add` [#100](https://github.com/metabahn/corerb/pull/100) Add a finalizer to the event pipeline ([bryanp](https://github.com/bryanp))
19
+
1
20
  ## [v0.1.0](https://github.com/metabahn/corerb/releases/tag/2021-10-24)
2
21
 
3
22
  *released on 2021-10-24*
@@ -19,6 +19,7 @@ module Core
19
19
  @mutex = Mutex.new
20
20
  @events = []
21
21
  @pipelines = {}
22
+ @compiled = false
22
23
  end
23
24
 
24
25
  def initialize_copy(...)
@@ -81,25 +82,38 @@ module Core
81
82
  # [public] Calls callbacks for the given event with the given arguments.
82
83
  #
83
84
  def performing(object, event, ...)
84
- compile.performing(object, event, ...)
85
+ finalize.performing(object, event, ...)
85
86
  end
86
87
 
87
88
  # [public] Calls before callbacks for the given event with the given arguments.
88
89
  #
89
90
  def starting(object, event, ...)
90
- compile.starting(object, event, ...)
91
+ finalize.starting(object, event, ...)
91
92
  end
92
93
 
93
94
  # [public] Calls after callbacks for the given event with the given arguments.
94
95
  #
95
96
  def finished(object, event, ...)
96
- compile.finished(object, event, ...)
97
+ finalize.finished(object, event, ...)
98
+ end
99
+
100
+ # [public]
101
+ #
102
+ def finalize
103
+ compile
104
+
105
+ self
97
106
  end
98
107
 
99
108
  private def compile
109
+ return if compiled?
110
+
100
111
  instance_eval(Compiler.compile(self), __FILE__, __LINE__ - 1)
112
+ @compiled = true
113
+ end
101
114
 
102
- self
115
+ private def compiled?
116
+ @compiled == true
103
117
  end
104
118
 
105
119
  private def call_callbacks(object, type, event, ...)
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Core
4
4
  module Event
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.2"
6
6
 
7
7
  def self.version
8
8
  VERSION
data/lib/is/eventable.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "is/extension"
4
- require "is/pipeline"
4
+ require "is/pipeline/controller"
5
5
  require "is/stateful"
6
6
 
7
7
  require_relative "../core/event/callable"
@@ -32,7 +32,7 @@ module Is
32
32
  end
33
33
  end
34
34
 
35
- extends :implementation, dependencies: [Is::Pipeline, Is::Stateful] do
35
+ extends :implementation, dependencies: [Is::Pipeline::Controller, Is::Stateful] do
36
36
  # [public] Calls callbacks for the given event with the given arguments.
37
37
  #
38
38
  def performing(event, ...)
@@ -58,5 +58,15 @@ module Is
58
58
  events.callback(*during, before: before, after: after, method: method, context: context, &block)
59
59
  end
60
60
  end
61
+
62
+ extends :implementation, prepend: true do
63
+ # [public]
64
+ #
65
+ def finalize(...)
66
+ super if defined?(super)
67
+ events.finalize
68
+ self
69
+ end
70
+ end
61
71
  end
62
72
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: core-event
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Powell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-24 00:00:00.000000000 Z
11
+ date: 2022-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: core-extension
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.1'
47
+ version: '0.5'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.1'
54
+ version: '0.5'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: core-state
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
100
  requirements: []
101
- rubygems_version: 3.2.22
101
+ rubygems_version: 3.3.13
102
102
  signing_key:
103
103
  specification_version: 4
104
104
  summary: Adds events to Ruby objects.