low_event 0.2.0 → 0.3.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: e1bcb82fa49f444b264ed1fe582db2ee8978f3e3a20136659dce822b2540a315
4
- data.tar.gz: f7fc218cb485223aefbdaf6377f0a88ba2d7e61897161a4d053c1741faa2367f
3
+ metadata.gz: f2c66b94c35dc2723cd5d9a619044ed9484eeb100111c58d4cfcdab85564935b
4
+ data.tar.gz: b0a7e10cc9c4a00f1430da97fa31f912594fb055a9c47f9013ee19a315de42eb
5
5
  SHA512:
6
- metadata.gz: 47a27a1352156f5c068beee92388a3fbe0b724ec6a45f017d453632161828d3a054ffa7417b052840ba2ece4a4ff00066a8f2ac572770723e5979c09becbc1e7
7
- data.tar.gz: e6a4ceb5ce1b7bd8470fbcd3ed975bdd8ae01b89c012f867c4ed82bec8a7586a539baf308b68dffbca3b3ffd3adefb428af8b321c94a1b11779e6c3e0ed1bdc7
6
+ metadata.gz: 6072b61cd206ce639447138129c471043afaa110df08d927feadcdaac02ca80266dc44c54e5affd5a87a14ab94200577e81ee9d753b2bae42a6a0eb482041421
7
+ data.tar.gz: daed9d381a46b084eb6a09787089d5be89103a714c2e62767fd3046c2a3fd7e1341b304debf44807144b1e1ebf968f2261d5ac3ccf253c6a0fb81679ecee055d
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Low
4
+ class Event
5
+ include LowType
6
+
7
+ attr_reader :action
8
+
9
+ def initialize(action: nil)
10
+ @action = action
11
+ end
12
+
13
+ # Consider LowEvent a value object.
14
+ def ==(other) = other.class == self.class
15
+ def eql?(other) = self == other
16
+ def hash = [self.class].hash
17
+
18
+ # Integrate with Observers, providing a self-contained API via an event's class.
19
+ class << self
20
+ def trigger(**kwargs)
21
+ observable = Observers::Observables[self] || raise(Observers::Observables::MissingKeyError)
22
+ event = new(**kwargs)
23
+ observable.trigger action: event.action, event:
24
+ end
25
+
26
+ def inherited(child)
27
+ child.include LowType
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,16 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'low_event'
4
-
5
3
  module Low
6
4
  module Events
7
- class RenderEvent < Event
8
- attr_reader :render
9
-
5
+ RenderEvent = Data.define(:action, :render) do
10
6
  def initialize(action: :render, render: nil)
11
- super(action:)
12
-
13
- @render = render
7
+ super
14
8
  end
15
9
  end
16
10
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'low_event'
3
+ require_relative 'event'
4
4
 
5
5
  module Low
6
6
  module Events
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'protocol/http'
4
- require_relative 'low_event'
4
+ require_relative 'event'
5
5
 
6
6
  module Low
7
7
  module Events
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'low_event'
3
+ require_relative 'event'
4
4
 
5
5
  module Low
6
6
  module Events
data/lib/low_event.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'low_type'
4
4
  require 'observers'
5
5
 
6
+ require_relative 'events/event'
6
7
  require_relative 'events/render_event'
7
8
  require_relative 'events/request_event'
8
9
  require_relative 'events/response_event'
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.2.0'
4
+ EVENT_VERSION = '0.3.0'
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.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi
@@ -58,7 +58,7 @@ executables: []
58
58
  extensions: []
59
59
  extra_rdoc_files: []
60
60
  files:
61
- - lib/events/low_event.rb
61
+ - lib/events/event.rb
62
62
  - lib/events/render_event.rb
63
63
  - lib/events/request_event.rb
64
64
  - lib/events/response_event.rb
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Low
4
- class Event
5
- include LowType
6
-
7
- attr_reader :action
8
-
9
- def initialize(action: nil)
10
- @action = action
11
- end
12
-
13
- def self.inherited(child)
14
- child.include LowType
15
- end
16
- end
17
- end