chickadee 1.1.3 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|