low_event 0.6.0 → 0.7.1

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: 7ce2e06fbf3ed01693a0ea9d8debd51bb06728cede50512fc2900aceea3cd34e
4
- data.tar.gz: 1ec225183c4d31f9b8fccacff0aefc10ae47f83bbefced301d21e4af5d81ed7b
3
+ metadata.gz: 4286eb914a5d502cc8315b14d25f22351e4fc4085cccc199a274608716326598
4
+ data.tar.gz: 72c748af66c4d677428620ae5f45657af50ad306240a3e9a861497dfa988b0ef
5
5
  SHA512:
6
- metadata.gz: 5a35fa062bb378c0485cec1ab5713cbadfd93374628630342458d0570008ca43bf9638d1913312257c35a8204e6a8e4ee4964ada8cbbe4717435719e36487b42
7
- data.tar.gz: 2135cae6a7b1d6fb4709f328aeec00e5d6d6da7b667707eda3e8af8b2fac968d2dc182c382ea9c3a48675a4062d9dc2276361604b9cfc3b0f8e62d57f5f069cf
6
+ metadata.gz: 86b141101160881806cac94ff1691b110f49d6e59d7c07e97bee200bc879ba027b7aa0a4a0c6c48fc8ab0290184c03a3605527dad39abc84150d13e5b0263fb5
7
+ data.tar.gz: 8a26413485f1456924f62af3fe36451d481861e05a7d2355dd03c5467e785b031b127b36ad83a699ea85d4d2c0a6acf9e71ed4a389cca04c4dec804656a2c89c
@@ -10,6 +10,8 @@ module Low
10
10
 
11
11
  # TODO: Type: "response: Protocol::HTTP::Response"
12
12
  def initialize(response: nil)
13
+ super(key: self.class, action: :respond)
14
+
13
15
  @response = response
14
16
  end
15
17
  end
@@ -7,12 +7,19 @@ module Low
7
7
  class StatusEvent < Event
8
8
  attr_reader :status, :request
9
9
 
10
- def initialize(status:, request:, action: :render)
11
- super(key: status, action:)
10
+ def initialize(status:, request:, key: nil, action: :render)
11
+ super(key: key || status, action:)
12
12
 
13
13
  @status = status
14
14
  @request = request
15
15
  end
16
+
17
+ # Status is a complex type that can be represented by both "Status" generically and "Status[:code]" specifically.
18
+ class << self
19
+ def trigger(status:, **kwargs)
20
+ new(status:, **kwargs).trigger || new(status:, key: Status, **kwargs).trigger
21
+ end
22
+ end
16
23
  end
17
24
  end
18
25
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Low
2
4
  module Events
3
5
  module Definable
@@ -45,24 +45,43 @@ module Low
45
45
  key.take(event: self) { restore_level(event_tree:) }
46
46
  end
47
47
 
48
+ def branch
49
+ event_tree = Providers['low.event.pool'].current_event_tree(event: self)
50
+ event_tree.branch(event: self)
51
+ end
52
+
53
+ private
54
+
55
+ def restore_level(event_tree:)
56
+ event_tree.current_event = self if event_tree.respond_to?(:current_event)
57
+ end
58
+
48
59
  class << self
49
60
  def trigger(**kwargs) = new(**kwargs).trigger
50
61
  def take(**kwargs) = new(**kwargs).take
51
62
 
52
63
  def inherited(child)
53
64
  child.include LowType
65
+
66
+ increase_count
67
+ add_event(child)
54
68
  end
55
- end
56
69
 
57
- private
70
+ def count
71
+ @count ||= 0
72
+ end
58
73
 
59
- def branch
60
- event_tree = Providers['low.event.pool'].current_event_tree(event: self)
61
- event_tree.branch(event: self)
62
- end
74
+ def increase_count
75
+ @count = count + 1
76
+ end
63
77
 
64
- def restore_level(event_tree:)
65
- event_tree.current_event = self if event_tree.respond_to?(:current_event)
78
+ def events
79
+ @events ||= []
80
+ end
81
+
82
+ def add_event(event)
83
+ events << event
84
+ end
66
85
  end
67
86
  end
68
87
  end
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Low
4
- EVENT_VERSION = '0.6.0'
4
+ EVENT_VERSION = '0.7.1'
5
5
  end
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.6.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  requirements: []
109
- rubygems_version: 4.0.6
109
+ rubygems_version: 4.0.10
110
110
  specification_version: 4
111
111
  summary: Observable events
112
112
  test_files: []