mediator-rb 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d9b2101bacad4c7dfe9e5836c7b228071018854868fc64aac8dad8df8027e2a
4
- data.tar.gz: cd4d1479cf139a6d59bb6899b1aab6ad8c275a2ad729921c42efa779a57cec89
3
+ metadata.gz: fcec518e118433d3ebec5e4a06cc866d7e36c5558511952ec91323d50a228940
4
+ data.tar.gz: eb6b84d7c8d823b8e6a03591f862a0887dccf839e8af66204e33b91c985623bb
5
5
  SHA512:
6
- metadata.gz: d3ea21362c0c82c6c9a78d0ab7074a525a5bdd7ebac6e6252ad0a331e197f9e14a51c9942d3065728d8fc7a30906176a6cfba744f3961753926a976740251ca3
7
- data.tar.gz: b1bc207000a3db59a7ec211b9110c004caa3a261733b9073a6722ba90c63e9a6e1fd41cb06e5f9e242912233c33f7f03875dda03ff0ec0507df98351d05218c0
6
+ metadata.gz: ee6f5a43a69921f186b9a60c3ccb324b02af3e91a67b98d3d53e6c37e909b03bcbec0942d10e1653f1e0fc0772ebd7834f05fe56887fe63ef84d18d9497a1ced
7
+ data.tar.gz: beaef57e236c9e37b4bd171629f6afa9129dd340e897b734728d6ebad5fed3b13515a477b0cbb007d923fadb66ba80bdfe834d41108022e2760195e36cf37dd5
data/.rspec CHANGED
@@ -1,3 +1,3 @@
1
- --format progress
1
+ --format documentation
2
2
  --color
3
3
  --require spec_helper
data/Gemfile.lock CHANGED
@@ -1,13 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mediator-rb (0.0.2)
5
- concurrent-ruby
4
+ mediator-rb (0.1.0)
6
5
 
7
6
  GEM
8
7
  remote: https://rubygems.org/
9
8
  specs:
10
- concurrent-ruby (1.2.2)
11
9
  diff-lcs (1.5.0)
12
10
  rake (13.0.6)
13
11
  rspec (3.12.0)
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mediator
4
- VERSION = "0.0.2"
4
+ module Rb
5
+ VERSION = "0.1.0"
6
+ end
5
7
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "rb/version"
4
+
5
+ module Mediator
6
+ module Rb
7
+ class Error < StandardError; end
8
+ # Your code goes here...
9
+ end
10
+ end
data/mediator-rb.gemspec CHANGED
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "lib/mediator/version"
3
+ require_relative "lib/mediator/rb/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "mediator-rb"
7
- spec.version = Mediator::VERSION
7
+ spec.version = Mediator::Rb::VERSION
8
8
  spec.authors = ["Laertis Pappas"]
9
9
  spec.email = ["laertis.pappas@gmail.com"]
10
10
 
@@ -30,6 +30,5 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = []
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_dependency "concurrent-ruby"
34
33
  spec.add_development_dependency "rspec"
35
34
  end
@@ -0,0 +1,6 @@
1
+ module Mediator
2
+ module Rb
3
+ VERSION: String
4
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
5
+ end
6
+ end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediator-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laertis Pappas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-04 00:00:00.000000000 Z
11
+ date: 2023-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: concurrent-ruby
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rspec
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -52,11 +38,10 @@ files:
52
38
  - LICENSE.txt
53
39
  - README.md
54
40
  - Rakefile
55
- - lib/mediator-rb.rb
56
- - lib/mediator.rb
57
- - lib/mediator/version.rb
41
+ - lib/mediator/rb.rb
42
+ - lib/mediator/rb/version.rb
58
43
  - mediator-rb.gemspec
59
- - sig/mediator/.gitignore
44
+ - sig/mediator/rb.rbs
60
45
  homepage: https://www.github.com/laertispappas/mediator-rb
61
46
  licenses:
62
47
  - MIT
data/lib/mediator-rb.rb DELETED
@@ -1 +0,0 @@
1
- require "mediator"
data/lib/mediator.rb DELETED
@@ -1,51 +0,0 @@
1
- require 'concurrent/map'
2
-
3
- module Mediator
4
- def self.init
5
- Instance.new
6
- end
7
-
8
- class Instance
9
- MultipleHandlers = Class.new(StandardError)
10
- UnregisteredHandler = Class.new(StandardError)
11
-
12
- def initialize
13
- @handlers = Concurrent::Map.new
14
- @listeners = Concurrent::Map.new { |h, k| h.compute_if_absent(k) { [] } }
15
- end
16
-
17
- def handle(klass, handler)
18
- raise MultipleHandlers, "Multiple handlers not allowed for #{klass}" if handlers[klass]
19
-
20
- handlers[klass] = handler
21
- end
22
-
23
- def subscribe(klass, handler)
24
- listeners[klass] << handler
25
- end
26
-
27
- def accept(request)
28
- handler!(request).then do |handler|
29
- handler.call(request)
30
- end
31
- end
32
-
33
- def publish(event)
34
- listeners!(event).each do |listener|
35
- listener.call(event)
36
- end
37
- end
38
-
39
- private
40
-
41
- attr_reader :handlers, :listeners
42
-
43
- def listeners!(event)
44
- listeners.fetch(event.class) { raise UnregisteredHandler, "Missing listener for #{event.class}" }
45
- end
46
-
47
- def handler!(request)
48
- handlers.fetch(request.class) { raise UnregisteredHandler, "Missing handler for #{request.class}" }
49
- end
50
- end
51
- end
File without changes