low_event 0.5.0 → 0.6.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 +4 -4
- data/lib/events/hidden_event.rb +1 -1
- data/lib/events/request_event.rb +1 -1
- data/lib/events/response_event.rb +1 -1
- data/lib/events/status_event.rb +1 -1
- data/lib/interfaces/definable.rb +15 -0
- data/lib/{events → interfaces}/event.rb +17 -17
- data/lib/low_event.rb +1 -3
- data/lib/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7ce2e06fbf3ed01693a0ea9d8debd51bb06728cede50512fc2900aceea3cd34e
|
|
4
|
+
data.tar.gz: 1ec225183c4d31f9b8fccacff0aefc10ae47f83bbefced301d21e4af5d81ed7b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5a35fa062bb378c0485cec1ab5713cbadfd93374628630342458d0570008ca43bf9638d1913312257c35a8204e6a8e4ee4964ada8cbbe4717435719e36487b42
|
|
7
|
+
data.tar.gz: 2135cae6a7b1d6fb4709f328aeec00e5d6d6da7b667707eda3e8af8b2fac968d2dc182c382ea9c3a48675a4062d9dc2276361604b9cfc3b0f8e62d57f5f069cf
|
data/lib/events/hidden_event.rb
CHANGED
data/lib/events/request_event.rb
CHANGED
data/lib/events/status_event.rb
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'low_type'
|
|
3
4
|
require 'observers'
|
|
5
|
+
require_relative 'definable'
|
|
4
6
|
require_relative '../support/value_object'
|
|
5
7
|
|
|
6
8
|
module Low
|
|
@@ -11,16 +13,19 @@ module Low
|
|
|
11
13
|
# The result of the previous event is made available to the next event. [UNRELEASED]
|
|
12
14
|
#
|
|
13
15
|
# Integrations:
|
|
14
|
-
# - Observers for observer pattern
|
|
16
|
+
# - Observers for observer pattern which we wrap in an event-centric API
|
|
15
17
|
# - EventPool for a tree of events and their child events
|
|
16
18
|
# - LowState for state machines to trigger multiple actions [UNLRELEASED]
|
|
17
19
|
class Event
|
|
18
20
|
include LowType
|
|
21
|
+
include Observers
|
|
22
|
+
include Events::Definable
|
|
19
23
|
include Support::ValueObject
|
|
20
24
|
|
|
21
25
|
attr_reader :key, :action, :created_at
|
|
22
26
|
attr_accessor :children
|
|
23
27
|
|
|
28
|
+
# The subclass will provide the key, usually "self.class".
|
|
24
29
|
def initialize(key:, action: nil, children: [])
|
|
25
30
|
@key = key
|
|
26
31
|
@action = action
|
|
@@ -30,16 +35,25 @@ module Low
|
|
|
30
35
|
|
|
31
36
|
def trigger
|
|
32
37
|
event_tree = branch
|
|
33
|
-
key = Observers[@key]
|
|
38
|
+
key = Observers::Keys[@key]
|
|
34
39
|
key.trigger(event: self) { restore_level(event_tree:) }
|
|
35
40
|
end
|
|
36
41
|
|
|
37
42
|
def take
|
|
38
43
|
event_tree = branch
|
|
39
|
-
key = Observers[@key]
|
|
44
|
+
key = Observers::Keys[@key]
|
|
40
45
|
key.take(event: self) { restore_level(event_tree:) }
|
|
41
46
|
end
|
|
42
47
|
|
|
48
|
+
class << self
|
|
49
|
+
def trigger(**kwargs) = new(**kwargs).trigger
|
|
50
|
+
def take(**kwargs) = new(**kwargs).take
|
|
51
|
+
|
|
52
|
+
def inherited(child)
|
|
53
|
+
child.include LowType
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
43
57
|
private
|
|
44
58
|
|
|
45
59
|
def branch
|
|
@@ -50,19 +64,5 @@ module Low
|
|
|
50
64
|
def restore_level(event_tree:)
|
|
51
65
|
event_tree.current_event = self if event_tree.respond_to?(:current_event)
|
|
52
66
|
end
|
|
53
|
-
|
|
54
|
-
class << self
|
|
55
|
-
def trigger(**kwargs)
|
|
56
|
-
new(**kwargs).trigger
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def take(**kwargs)
|
|
60
|
-
new(**kwargs).take
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def inherited(child)
|
|
64
|
-
child.include LowType
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
67
|
end
|
|
68
68
|
end
|
data/lib/low_event.rb
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'low_type'
|
|
4
|
-
require 'observers'
|
|
5
3
|
require 'providers'
|
|
6
4
|
|
|
7
|
-
require_relative 'events/event'
|
|
8
5
|
require_relative 'events/render_event'
|
|
9
6
|
require_relative 'events/request_event'
|
|
10
7
|
require_relative 'events/response_event'
|
|
11
8
|
require_relative 'events/status_event'
|
|
12
9
|
require_relative 'factories/response_factory' # TODO: Find out who's using this and require it there.
|
|
10
|
+
require_relative 'interfaces/event'
|
|
13
11
|
require_relative 'pool/event_pool'
|
|
14
12
|
|
|
15
13
|
Providers.define('low.event.pool') do
|
data/lib/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: low_event
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- maedi
|
|
@@ -72,13 +72,14 @@ executables: []
|
|
|
72
72
|
extensions: []
|
|
73
73
|
extra_rdoc_files: []
|
|
74
74
|
files:
|
|
75
|
-
- lib/events/event.rb
|
|
76
75
|
- lib/events/hidden_event.rb
|
|
77
76
|
- lib/events/render_event.rb
|
|
78
77
|
- lib/events/request_event.rb
|
|
79
78
|
- lib/events/response_event.rb
|
|
80
79
|
- lib/events/status_event.rb
|
|
81
80
|
- lib/factories/response_factory.rb
|
|
81
|
+
- lib/interfaces/definable.rb
|
|
82
|
+
- lib/interfaces/event.rb
|
|
82
83
|
- lib/low_event.rb
|
|
83
84
|
- lib/pool/branch_event.rb
|
|
84
85
|
- lib/pool/event_pool.rb
|