chickadee 1.1.3 → 2.0.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/chickadee.gemspec +1 -0
- data/lib/chickadee/dispatcher.rb +10 -36
- data/lib/chickadee/dispatchers/abstract_dispatcher.rb +21 -0
- data/lib/chickadee/dispatchers/command_dispatcher.rb +1 -1
- data/lib/chickadee/dispatchers/event_dispatcher.rb +1 -1
- data/lib/chickadee/dispatchers/query_dispatcher.rb +1 -1
- data/lib/chickadee/dispatchers/request_dispatcher.rb +13 -10
- data/lib/chickadee/{dispatchers/handler_chain_struct.rb → handler_chain_struct.rb} +0 -0
- data/lib/chickadee/{dispatchers/message_bus.rb → message_bus.rb} +0 -0
- data/lib/chickadee/version.rb +1 -1
- data/lib/chickadee.rb +4 -8
- data/spec/dispatcher_spec.rb +9 -6
- data/spec/dispatchers/command_dispatcher_spec.rb +10 -12
- data/spec/dispatchers/event_dispatcher_spec.rb +11 -11
- data/spec/dispatchers/query_dispatcher_spec.rb +10 -11
- data/spec/{dispatchers/handler_chain_struct_spec.rb → handler_chain_struct_spec.rb} +0 -0
- data/spec/{dispatchers/message_bus_spec.rb → message_bus_spec.rb} +0 -0
- metadata +35 -31
- data/lib/chickadee/handler.rb +0 -7
- data/lib/chickadee/requests/command.rb +0 -7
- data/lib/chickadee/requests/event.rb +0 -7
- data/lib/chickadee/requests/query.rb +0 -7
- data/lib/chickadee/requests/request_type.rb +0 -23
- data/spec/requests/command_spec.rb +0 -9
- data/spec/requests/event_spec.rb +0 -9
- data/spec/requests/query_spec.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 944c2383c13fa3a2189cff7c067510996b817ca4
|
4
|
+
data.tar.gz: 3118a4d81f007d03b537d7e9ec066ed03f65e6cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 008659b0df9454eed991171ec0d6d92e1475c0fe961d7b8b0f2026f5812dbb9c5f90507cd782415451d3f55a5282a95fbf83b3b1c630eadf03477482e8b1ef42
|
7
|
+
data.tar.gz: 30594d643d70eb744a9b32a2e7db927be221f984f0b14edfe04180d80e96c71be2a5461cd290ea074e7621a47260aefb2fc0d02d71753ab5392edde71499f1e4
|
data/chickadee.gemspec
CHANGED
data/lib/chickadee/dispatcher.rb
CHANGED
@@ -9,54 +9,28 @@ module Chickadee
|
|
9
9
|
|
10
10
|
def initialize
|
11
11
|
@container = Container.new
|
12
|
-
@
|
13
|
-
@
|
14
|
-
@event_dispatcher = EventDispatcher.new(@container)
|
15
|
-
@container.register(:event_dispatcher, @event_dispatcher, :as => :instance)
|
12
|
+
@request_dispatcher = RequestDispatcher.new(@container)
|
13
|
+
@container.register(:event_dispatcher, @request_dispatcher.event_dispatcher, :as => :instance)
|
16
14
|
end
|
17
15
|
|
18
16
|
def register(*args)
|
19
17
|
@container.register(*args)
|
20
18
|
end
|
21
19
|
|
22
|
-
def
|
23
|
-
|
24
|
-
return map_query(request_class, *handlers) if request_class.type.query?
|
25
|
-
return map_event(request_class, *handlers) if request_class.type.event?
|
26
|
-
raise(DispatcherError, "Unrecognized request type: #{request_class}")
|
20
|
+
def command(request_class, *handlers)
|
21
|
+
@request_dispatcher.map(:command, request_class, *handlers)
|
27
22
|
end
|
28
23
|
|
29
|
-
def
|
30
|
-
|
31
|
-
return dispatch_query(request) if request.class.type.query?
|
32
|
-
return dispatch_event(request) if request.class.type.event?
|
33
|
-
raise(DispatcherError, "Unrecognized request type: #{request.class}")
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
def map_command(*args)
|
39
|
-
@command_dispatcher.map(*args)
|
40
|
-
end
|
41
|
-
|
42
|
-
def map_query(*args)
|
43
|
-
@query_dispatcher.map(*args)
|
24
|
+
def event(request_class, *handlers)
|
25
|
+
@request_dispatcher.map(:event, request_class, *handlers)
|
44
26
|
end
|
45
27
|
|
46
|
-
def
|
47
|
-
@
|
28
|
+
def query(request_class, *handlers)
|
29
|
+
@request_dispatcher.map(:query, request_class, *handlers)
|
48
30
|
end
|
49
31
|
|
50
|
-
def
|
51
|
-
@
|
52
|
-
end
|
53
|
-
|
54
|
-
def dispatch_query(*args)
|
55
|
-
@query_dispatcher.dispatch(*args)
|
56
|
-
end
|
57
|
-
|
58
|
-
def dispatch_event(*args)
|
59
|
-
@event_dispatcher.dispatch(*args)
|
32
|
+
def dispatch(request)
|
33
|
+
@request_dispatcher.dispatch(request)
|
60
34
|
end
|
61
35
|
end
|
62
36
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Chickadee
|
2
|
+
class AbstractDispatcher
|
3
|
+
def initialize(container)
|
4
|
+
@container = container
|
5
|
+
end
|
6
|
+
|
7
|
+
def map(request_key, *handlers)
|
8
|
+
raise(NotImplementedError)
|
9
|
+
end
|
10
|
+
|
11
|
+
def dispatch(request)
|
12
|
+
raise(NotImplementedError)
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def resolve_handler_chain(*handlers)
|
18
|
+
@container.resolve_anonymous(HandlerChainStruct.new(*handlers))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Chickadee
|
2
|
-
class CommandDispatcher <
|
2
|
+
class CommandDispatcher < AbstractDispatcher
|
3
3
|
def map(request_key, *handlers)
|
4
4
|
raise(DispatcherError, "Command already mapped: #{request_key}") if bus.topic_exists?(request_key)
|
5
5
|
bus.subscribe(request_key) {|req| resolve_handler_chain(*handlers).handle(req)}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Chickadee
|
2
|
-
class QueryDispatcher <
|
2
|
+
class QueryDispatcher < AbstractDispatcher
|
3
3
|
def map(request_key, *handlers)
|
4
4
|
raise(DispatcherError, "Query already mapped: #{request_key}") if cache.key?(request_key)
|
5
5
|
cache[request_key] = Proc.new{|req| resolve_handler_chain(*handlers).handle(req)}
|
@@ -1,21 +1,24 @@
|
|
1
1
|
module Chickadee
|
2
2
|
class RequestDispatcher
|
3
|
+
|
4
|
+
attr_reader :command_dispatcher, :query_dispatcher, :event_dispatcher
|
5
|
+
|
3
6
|
def initialize(container)
|
4
|
-
@
|
7
|
+
@command_dispatcher = CommandDispatcher.new(container)
|
8
|
+
@query_dispatcher = QueryDispatcher.new(container)
|
9
|
+
@event_dispatcher = EventDispatcher.new(container)
|
10
|
+
@request_dispatcher_map = {}
|
5
11
|
end
|
6
12
|
|
7
|
-
def map(
|
8
|
-
|
13
|
+
def map(request_type, request_class, *handlers)
|
14
|
+
dispatcher = instance_variable_get("@#{request_type}_dispatcher")
|
15
|
+
@request_dispatcher_map[request_class] = dispatcher
|
16
|
+
dispatcher.map(request_class, *handlers)
|
9
17
|
end
|
10
18
|
|
11
19
|
def dispatch(request)
|
12
|
-
raise(
|
13
|
-
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def resolve_handler_chain(*handlers)
|
18
|
-
@container.resolve_anonymous(HandlerChainStruct.new(*handlers))
|
20
|
+
raise(DispatcherError, "Unrecognized request type: #{request.class}") unless @request_dispatcher_map.key?(request.class)
|
21
|
+
@request_dispatcher_map[request.class].dispatch(request)
|
19
22
|
end
|
20
23
|
end
|
21
24
|
end
|
File without changes
|
File without changes
|
data/lib/chickadee/version.rb
CHANGED
data/lib/chickadee.rb
CHANGED
@@ -2,17 +2,13 @@ require 'ioc'
|
|
2
2
|
require 'chickadee/version'
|
3
3
|
require 'chickadee/exceptions'
|
4
4
|
require 'chickadee/container'
|
5
|
-
require 'chickadee/
|
6
|
-
require 'chickadee/
|
7
|
-
require 'chickadee/
|
8
|
-
require 'chickadee/requests/query'
|
9
|
-
require 'chickadee/requests/event'
|
10
|
-
require 'chickadee/dispatchers/handler_chain_struct'
|
11
|
-
require 'chickadee/dispatchers/message_bus'
|
12
|
-
require 'chickadee/dispatchers/request_dispatcher'
|
5
|
+
require 'chickadee/handler_chain_struct'
|
6
|
+
require 'chickadee/message_bus'
|
7
|
+
require 'chickadee/dispatchers/abstract_dispatcher'
|
13
8
|
require 'chickadee/dispatchers/event_dispatcher'
|
14
9
|
require 'chickadee/dispatchers/command_dispatcher'
|
15
10
|
require 'chickadee/dispatchers/query_dispatcher'
|
11
|
+
require 'chickadee/dispatchers/request_dispatcher'
|
16
12
|
require 'chickadee/dispatcher'
|
17
13
|
|
18
14
|
module Chickadee
|
data/spec/dispatcher_spec.rb
CHANGED
@@ -4,11 +4,12 @@ require 'chickadee'
|
|
4
4
|
describe Chickadee::Dispatcher do
|
5
5
|
it 'can dispatch a command' do
|
6
6
|
handler = stub(:handle => 'handler response')
|
7
|
-
|
7
|
+
command_class = Class.new
|
8
|
+
command = command_class.new
|
8
9
|
dispatcher = new_dispatcher
|
9
10
|
|
10
11
|
dispatcher.register(:handler, handler, :as => :instance)
|
11
|
-
dispatcher.
|
12
|
+
dispatcher.command(command_class, :handler)
|
12
13
|
|
13
14
|
handler.expects(:handle).once
|
14
15
|
dispatcher.dispatch(command).must_be_nil
|
@@ -16,21 +17,23 @@ describe Chickadee::Dispatcher do
|
|
16
17
|
|
17
18
|
it 'can dispatch a query' do
|
18
19
|
handler = stub(:handle => 'handler response')
|
19
|
-
|
20
|
+
query_class = Class.new
|
21
|
+
query = query_class.new
|
20
22
|
dispatcher = new_dispatcher
|
21
23
|
|
22
24
|
dispatcher.register(:handler, handler, :as => :instance)
|
23
|
-
dispatcher.
|
25
|
+
dispatcher.query(query_class, :handler)
|
24
26
|
dispatcher.dispatch(query).must_equal('handler response')
|
25
27
|
end
|
26
28
|
|
27
29
|
it 'can dispatch an event' do
|
28
30
|
handler = stub(:handle => 'handler response')
|
29
|
-
|
31
|
+
event_class = Class.new
|
32
|
+
event = event_class.new
|
30
33
|
dispatcher = new_dispatcher
|
31
34
|
|
32
35
|
dispatcher.register(:handler, handler, :as => :instance)
|
33
|
-
dispatcher.
|
36
|
+
dispatcher.event(event_class, :handler)
|
34
37
|
|
35
38
|
handler.expects(:handle).once
|
36
39
|
dispatcher.dispatch(event).must_be_nil
|
@@ -5,14 +5,15 @@ describe Chickadee::CommandDispatcher do
|
|
5
5
|
it 'can map handler chain to request' do
|
6
6
|
container = define_container
|
7
7
|
dispatcher = define_dispatcher(container)
|
8
|
-
|
8
|
+
command_class = Class.new
|
9
|
+
command = command_class.new
|
9
10
|
handler1 = stub(:handle => 'handler1_response')
|
10
11
|
handler2 = stub(:handle => 'handler2_response')
|
11
12
|
|
12
13
|
container.register(:myhandler1, handler1, :as => :instance)
|
13
14
|
container.register(:myhandler2, handler2, :as => :instance)
|
14
15
|
|
15
|
-
dispatcher.map(
|
16
|
+
dispatcher.map(command_class, :myhandler1, :myhandler2)
|
16
17
|
|
17
18
|
handler1.expects(:handle).once
|
18
19
|
handler2.expects(:handle).once
|
@@ -22,25 +23,26 @@ describe Chickadee::CommandDispatcher do
|
|
22
23
|
it 'complains if same command mapped twice' do
|
23
24
|
container = define_container
|
24
25
|
dispatcher = define_dispatcher(container)
|
25
|
-
|
26
|
+
command_class = Class.new
|
27
|
+
command = command_class.new
|
26
28
|
|
27
|
-
dispatcher.map(
|
28
|
-
proc{ dispatcher.map(
|
29
|
+
dispatcher.map(command_class, stub)
|
30
|
+
proc{ dispatcher.map(command_class, stub) }.must_raise(Chickadee::DispatcherError)
|
29
31
|
end
|
30
32
|
|
31
33
|
it 'returns nothing' do
|
32
34
|
container = define_container
|
33
35
|
dispatcher = define_dispatcher(container)
|
34
|
-
|
36
|
+
command_class = Class.new
|
37
|
+
command = command_class.new
|
35
38
|
handler1 = stub(:handle => 'handler1_response')
|
36
39
|
|
37
40
|
container.register(:myhandler1, handler1, :as => :instance)
|
38
41
|
|
39
|
-
dispatcher.map(
|
42
|
+
dispatcher.map(command_class, :myhandler1)
|
40
43
|
dispatcher.dispatch(command).must_be_nil
|
41
44
|
end
|
42
45
|
|
43
|
-
|
44
46
|
def define_container
|
45
47
|
Chickadee::Container.new
|
46
48
|
end
|
@@ -48,8 +50,4 @@ describe Chickadee::CommandDispatcher do
|
|
48
50
|
def define_dispatcher(*args)
|
49
51
|
Chickadee::CommandDispatcher.new(*args)
|
50
52
|
end
|
51
|
-
|
52
|
-
def define_command
|
53
|
-
Chickadee::Command.new
|
54
|
-
end
|
55
53
|
end
|
@@ -5,14 +5,16 @@ describe Chickadee::EventDispatcher do
|
|
5
5
|
it 'can map handler chain to request' do
|
6
6
|
container = define_container
|
7
7
|
dispatcher = define_dispatcher(container)
|
8
|
-
|
8
|
+
event_class = Class.new
|
9
|
+
event = event_class.new
|
10
|
+
|
9
11
|
handler1 = stub(:handle => 'handler1_response')
|
10
12
|
handler2 = stub(:handle => 'handler2_response')
|
11
13
|
|
12
14
|
container.register(:myhandler1, handler1, :as => :instance)
|
13
15
|
container.register(:myhandler2, handler2, :as => :instance)
|
14
16
|
|
15
|
-
dispatcher.map(
|
17
|
+
dispatcher.map(event_class, :myhandler1, :myhandler2)
|
16
18
|
|
17
19
|
handler1.expects(:handle).once
|
18
20
|
handler2.expects(:handle).once
|
@@ -22,7 +24,8 @@ describe Chickadee::EventDispatcher do
|
|
22
24
|
it 'can map multiple handler chains to request' do
|
23
25
|
container = define_container
|
24
26
|
dispatcher = define_dispatcher(container)
|
25
|
-
|
27
|
+
event_class = Class.new
|
28
|
+
event = event_class.new
|
26
29
|
handler1 = stub(:handle => 'handler1_response')
|
27
30
|
handler2 = stub(:handle => 'handler2_response')
|
28
31
|
handler3 = stub(:handle => 'handler3_response')
|
@@ -33,8 +36,8 @@ describe Chickadee::EventDispatcher do
|
|
33
36
|
container.register(:myhandler3, handler3, :as => :instance)
|
34
37
|
container.register(:myhandler4, handler4, :as => :instance)
|
35
38
|
|
36
|
-
dispatcher.map(
|
37
|
-
dispatcher.map(
|
39
|
+
dispatcher.map(event_class, :myhandler1, :myhandler2)
|
40
|
+
dispatcher.map(event_class, :myhandler3, :myhandler4)
|
38
41
|
|
39
42
|
handler1.expects(:handle).once
|
40
43
|
handler2.expects(:handle).once
|
@@ -46,12 +49,13 @@ describe Chickadee::EventDispatcher do
|
|
46
49
|
it 'returns nothing' do
|
47
50
|
container = define_container
|
48
51
|
dispatcher = define_dispatcher(container)
|
49
|
-
|
52
|
+
event_class = Class.new
|
53
|
+
event = event_class.new
|
50
54
|
handler1 = stub(:handle => 'handler1_response')
|
51
55
|
|
52
56
|
container.register(:myhandler1, handler1, :as => :instance)
|
53
57
|
|
54
|
-
dispatcher.map(
|
58
|
+
dispatcher.map(event_class, :myhandler1)
|
55
59
|
dispatcher.dispatch(event).must_be_nil
|
56
60
|
end
|
57
61
|
|
@@ -63,8 +67,4 @@ describe Chickadee::EventDispatcher do
|
|
63
67
|
def define_dispatcher(*args)
|
64
68
|
Chickadee::EventDispatcher.new(*args)
|
65
69
|
end
|
66
|
-
|
67
|
-
def define_event
|
68
|
-
Chickadee::Event.new
|
69
|
-
end
|
70
70
|
end
|
@@ -5,14 +5,15 @@ describe Chickadee::QueryDispatcher do
|
|
5
5
|
it 'can map handler chain to request' do
|
6
6
|
container = define_container
|
7
7
|
dispatcher = define_dispatcher(container)
|
8
|
-
|
8
|
+
query_class = Class.new
|
9
|
+
query = query_class.new
|
9
10
|
handler1 = stub(:handle => 'handler1_response')
|
10
11
|
handler2 = stub(:handle => 'handler2_response')
|
11
12
|
|
12
13
|
container.register(:myhandler1, handler1, :as => :instance)
|
13
14
|
container.register(:myhandler2, handler2, :as => :instance)
|
14
15
|
|
15
|
-
dispatcher.map(
|
16
|
+
dispatcher.map(query_class, :myhandler1, :myhandler2)
|
16
17
|
|
17
18
|
handler1.expects(:handle).once
|
18
19
|
handler2.expects(:handle).once
|
@@ -22,23 +23,25 @@ describe Chickadee::QueryDispatcher do
|
|
22
23
|
it 'complains if same query mapped twice' do
|
23
24
|
container = define_container
|
24
25
|
dispatcher = define_dispatcher(container)
|
25
|
-
|
26
|
+
query_class = Class.new
|
27
|
+
query = query_class.new
|
26
28
|
|
27
|
-
dispatcher.map(
|
28
|
-
proc{ dispatcher.map(
|
29
|
+
dispatcher.map(query_class, stub)
|
30
|
+
proc{ dispatcher.map(query_class, stub) }.must_raise(Chickadee::DispatcherError)
|
29
31
|
end
|
30
32
|
|
31
33
|
it 'returns output from last handler in chain' do
|
32
34
|
container = define_container
|
33
35
|
dispatcher = define_dispatcher(container)
|
34
|
-
|
36
|
+
query_class = Class.new
|
37
|
+
query = query_class.new
|
35
38
|
handler1 = stub(:handle => 'handler1_response')
|
36
39
|
handler2 = stub(:handle => 'handler2_response')
|
37
40
|
|
38
41
|
container.register(:myhandler1, handler1, :as => :instance)
|
39
42
|
container.register(:myhandler2, handler2, :as => :instance)
|
40
43
|
|
41
|
-
dispatcher.map(
|
44
|
+
dispatcher.map(query_class, :myhandler1, :myhandler2)
|
42
45
|
dispatcher.dispatch(query).must_equal('handler2_response')
|
43
46
|
end
|
44
47
|
|
@@ -50,8 +53,4 @@ describe Chickadee::QueryDispatcher do
|
|
50
53
|
def define_dispatcher(*args)
|
51
54
|
Chickadee::QueryDispatcher.new(*args)
|
52
55
|
end
|
53
|
-
|
54
|
-
def define_query
|
55
|
-
Chickadee::Query.new
|
56
|
-
end
|
57
56
|
end
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,71 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chickadee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Lott
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ioc
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: mocha
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 0.14.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.14.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.2.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.2.0
|
69
83
|
description: Lightweight domain driven design library
|
70
84
|
email:
|
71
85
|
- erik.lott@evrium.com
|
@@ -73,7 +87,7 @@ executables: []
|
|
73
87
|
extensions: []
|
74
88
|
extra_rdoc_files: []
|
75
89
|
files:
|
76
|
-
- .gitignore
|
90
|
+
- ".gitignore"
|
77
91
|
- Gemfile
|
78
92
|
- Guardfile
|
79
93
|
- LICENSE.txt
|
@@ -83,28 +97,21 @@ files:
|
|
83
97
|
- lib/chickadee.rb
|
84
98
|
- lib/chickadee/container.rb
|
85
99
|
- lib/chickadee/dispatcher.rb
|
100
|
+
- lib/chickadee/dispatchers/abstract_dispatcher.rb
|
86
101
|
- lib/chickadee/dispatchers/command_dispatcher.rb
|
87
102
|
- lib/chickadee/dispatchers/event_dispatcher.rb
|
88
|
-
- lib/chickadee/dispatchers/handler_chain_struct.rb
|
89
|
-
- lib/chickadee/dispatchers/message_bus.rb
|
90
103
|
- lib/chickadee/dispatchers/query_dispatcher.rb
|
91
104
|
- lib/chickadee/dispatchers/request_dispatcher.rb
|
92
105
|
- lib/chickadee/exceptions.rb
|
93
|
-
- lib/chickadee/
|
94
|
-
- lib/chickadee/
|
95
|
-
- lib/chickadee/requests/event.rb
|
96
|
-
- lib/chickadee/requests/query.rb
|
97
|
-
- lib/chickadee/requests/request_type.rb
|
106
|
+
- lib/chickadee/handler_chain_struct.rb
|
107
|
+
- lib/chickadee/message_bus.rb
|
98
108
|
- lib/chickadee/version.rb
|
99
109
|
- spec/dispatcher_spec.rb
|
100
110
|
- spec/dispatchers/command_dispatcher_spec.rb
|
101
111
|
- spec/dispatchers/event_dispatcher_spec.rb
|
102
|
-
- spec/dispatchers/handler_chain_struct_spec.rb
|
103
|
-
- spec/dispatchers/message_bus_spec.rb
|
104
112
|
- spec/dispatchers/query_dispatcher_spec.rb
|
105
|
-
- spec/
|
106
|
-
- spec/
|
107
|
-
- spec/requests/query_spec.rb
|
113
|
+
- spec/handler_chain_struct_spec.rb
|
114
|
+
- spec/message_bus_spec.rb
|
108
115
|
- spec/spec_helper.rb
|
109
116
|
homepage: ''
|
110
117
|
licenses:
|
@@ -116,17 +123,17 @@ require_paths:
|
|
116
123
|
- lib
|
117
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
118
125
|
requirements:
|
119
|
-
- -
|
126
|
+
- - ">="
|
120
127
|
- !ruby/object:Gem::Version
|
121
128
|
version: '0'
|
122
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
130
|
requirements:
|
124
|
-
- -
|
131
|
+
- - ">="
|
125
132
|
- !ruby/object:Gem::Version
|
126
133
|
version: '0'
|
127
134
|
requirements: []
|
128
135
|
rubyforge_project:
|
129
|
-
rubygems_version: 2.
|
136
|
+
rubygems_version: 2.2.2
|
130
137
|
signing_key:
|
131
138
|
specification_version: 4
|
132
139
|
summary: Lightweight domain driven design library
|
@@ -134,10 +141,7 @@ test_files:
|
|
134
141
|
- spec/dispatcher_spec.rb
|
135
142
|
- spec/dispatchers/command_dispatcher_spec.rb
|
136
143
|
- spec/dispatchers/event_dispatcher_spec.rb
|
137
|
-
- spec/dispatchers/handler_chain_struct_spec.rb
|
138
|
-
- spec/dispatchers/message_bus_spec.rb
|
139
144
|
- spec/dispatchers/query_dispatcher_spec.rb
|
140
|
-
- spec/
|
141
|
-
- spec/
|
142
|
-
- spec/requests/query_spec.rb
|
145
|
+
- spec/handler_chain_struct_spec.rb
|
146
|
+
- spec/message_bus_spec.rb
|
143
147
|
- spec/spec_helper.rb
|
data/lib/chickadee/handler.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Chickadee
|
2
|
-
class RequestType
|
3
|
-
def initialize(type)
|
4
|
-
@type = type
|
5
|
-
end
|
6
|
-
|
7
|
-
def query?
|
8
|
-
@type == :query
|
9
|
-
end
|
10
|
-
|
11
|
-
def command?
|
12
|
-
@type == :command
|
13
|
-
end
|
14
|
-
|
15
|
-
def event?
|
16
|
-
@type == :event
|
17
|
-
end
|
18
|
-
|
19
|
-
def match?(t)
|
20
|
-
t == @type
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'chickadee'
|
3
|
-
|
4
|
-
describe Chickadee::Command do
|
5
|
-
it { Chickadee::Command.type.query?.must_equal(false) }
|
6
|
-
it { Chickadee::Command.type.command?.must_equal(true) }
|
7
|
-
it { Chickadee::Command.type.event?.must_equal(false) }
|
8
|
-
it { Chickadee::Command.type.match?(:command).must_equal(true) }
|
9
|
-
end
|
data/spec/requests/event_spec.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'chickadee'
|
3
|
-
|
4
|
-
describe Chickadee::Event do
|
5
|
-
it { Chickadee::Event.type.query?.must_equal(false) }
|
6
|
-
it { Chickadee::Event.type.command?.must_equal(false) }
|
7
|
-
it { Chickadee::Event.type.event?.must_equal(true) }
|
8
|
-
it { Chickadee::Event.type.match?(:event).must_equal(true) }
|
9
|
-
end
|
data/spec/requests/query_spec.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'chickadee'
|
3
|
-
|
4
|
-
describe Chickadee::Query do
|
5
|
-
it { Chickadee::Query.type.query?.must_equal(true) }
|
6
|
-
it { Chickadee::Query.type.command?.must_equal(false) }
|
7
|
-
it { Chickadee::Query.type.event?.must_equal(false) }
|
8
|
-
it { Chickadee::Query.type.match?(:query).must_equal(true) }
|
9
|
-
end
|