rcqrs 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODM1NDgzMDIxOTE2NzMyOTMyNTViZDgyZmFkY2U0ZTU1YzM5Zjg3NA==
5
+ data.tar.gz: !binary |-
6
+ YTc2MWUzOWUxM2VlMTEwMTAwMmE2Njc0YzYwMjllNDhjNzVlM2I2OQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NWM5MzJhYzRkNzYxNmFkMjViNTcyOTA3YzI3NjY3ZjU0YTJkYmNkNzhkNmM0
10
+ ZGY4MDc1MDEwMzZjOTA4ZTBiZDIzMzZiNDQ1NjI0NzJkY2M3MzRlNmE2MzRh
11
+ NjhmZDhhY2NiZWVhODcyMjQyMTQ4OWU1YzZiODc4YzU2ZDgxNjQ=
12
+ data.tar.gz: !binary |-
13
+ YWNlYmZkOWRjMDg3YjA2ZmJhZjFhMDRhOTdmZjVlNDE2ZDc2NDc4MDUzOTUy
14
+ MTUzMzQyNDQyZGU5MmUzNWU4ZGM3NGU3MGY4Zjg1OWU3YWRjN2RlNjQ2ZjU1
15
+ NDk1ZjViZWRjODJmZjVhZTNhMzRhMGRmMjliNmIxZGE3ODlkMjc=
@@ -12,14 +12,19 @@ module Rcqrs
12
12
  @data = data
13
13
  end
14
14
 
15
- def self.property(property_name)
16
- raise "data and published_at are not allowed property names" if (["data","published_at"].include? property_name.to_s)
17
- @properties = Array.new unless @properties
18
- @properties << property_name.to_s
19
- attr_reader property_name
15
+ def self.property(*property_names)
16
+ property_names.each do |name|
17
+ raise "data and published_at are not allowed property names" if (["data","published_at"].include? name.to_s)
18
+ end
19
+ property_names.each do |property_name|
20
+ @properties = Array.new unless @properties
21
+ @properties << property_name.to_s
22
+ attr_reader property_name
23
+ end
20
24
  end
21
25
 
22
26
  def self.has_property(property)
27
+ return false unless @properties
23
28
  @properties.include?(property.to_s)
24
29
  end
25
30
 
@@ -17,8 +17,16 @@ module Rcqrs
17
17
  end
18
18
 
19
19
  def handle aggregate_id, event
20
- methodname = handler_method_name(event)
21
- send(methodname, aggregate_id,event)
20
+ methodname = handler_method_name(event)
21
+ begin
22
+ send(methodname, aggregate_id,event)
23
+ rescue Exception => e
24
+ on_exception e
25
+ end
26
+ end
27
+
28
+ def on_exception exception
29
+ puts exception
22
30
  end
23
31
 
24
32
  def handler_method_name(event)
data/lib/rcqrs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rcqrs
2
- VERSION = "0.1.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -22,5 +22,17 @@ describe Rcqrs::BaseEvent do
22
22
  it "should not allow to define allready used methods as properties" do
23
23
  lambda {class TestEvent; property :data ;end}.should raise_error
24
24
  end
25
+
26
+ it "should work with no properties defined" do
27
+ class SomeOtherTestEvent < Rcqrs::BaseEvent; end
28
+ lambda {SomeOtherTestEvent.new(name:"Jimbo")}.should raise_error "Property not defined"
29
+ end
30
+
31
+ it "should allow to define multiple properties in one line" do
32
+ class TestEvent; property :weight, :size; end
33
+ jim = TestEvent.new(name:"jim", weight: 23, size: 185)
34
+ jim.weight.should be 23
35
+ jim.size.should be 185
36
+ end
25
37
  end
26
38
 
@@ -12,11 +12,11 @@ describe Rcqrs::CommandSource do
12
12
  end
13
13
 
14
14
  it "should raise NameError when commandhandler not found" do
15
- expect {@commandSource.execute NonExistingCommand.new("Param")}.to raise_error(Rcqrs::CommandHandlerNotFoundError)
15
+ expect {@commandSource.execute NonExistingCommand.new(figo: "Param")}.to raise_error(Rcqrs::CommandHandlerNotFoundError)
16
16
  end
17
17
 
18
18
  it "should raise an Exception if the CommandHandler does not inherit from BaseCommandHandler" do
19
- expect {@commandSource.execute DoesNotInheritFromBase.new("Param")}.to raise_error(Rcqrs::CommandHandlerDoesNotInheritFromBaseError)
19
+ expect {@commandSource.execute DoesNotInheritFromBase.new}.to raise_error(Rcqrs::CommandHandlerDoesNotInheritFromBaseError)
20
20
  end
21
21
 
22
22
  it "should provide the CommandHandler a repository" do
@@ -37,4 +37,4 @@ end
37
37
 
38
38
  class DoesNotInheritFromBaseHandler
39
39
 
40
- end
40
+ end
@@ -34,6 +34,12 @@ describe Rcqrs::EventHandler do
34
34
  Rcqrs::EventConfigurationBase.register_all_at bus
35
35
  bus.config.should == {TestEventModule::ClassMacroEvent => DummyEventhandler}
36
36
  end
37
+
38
+ it "handles errors which may occure during event processing" do
39
+ @handler.raise_error = true
40
+ @handler.handle("aggregate_id",@event)
41
+ @handler.exception.message.should == "Error occured"
42
+ end
37
43
 
38
44
  end
39
45
 
@@ -54,14 +60,23 @@ class DummyEventhandler
54
60
  include Rcqrs::EventHandler
55
61
 
56
62
  namespace TestEventModule
57
-
63
+
58
64
  class << self
59
- attr_reader :test_event_handled, :another_test_event_handled, :class_macro_event_handled
65
+ attr_reader :test_event_handled, :another_test_event_handled, :class_macro_event_handled, :exception
66
+ attr_writer :raise_error
60
67
  end
61
68
 
62
69
  def self.handle_test_event aggregate_id, event
70
+ if @raise_error
71
+ @raise_error = false
72
+ raise "Error occured"
73
+ end
63
74
  @test_event_handled = true
64
75
  end
76
+
77
+ def self.on_exception exception
78
+ @exception = exception
79
+ end
65
80
 
66
81
  def self.handle_another_test_event aggregate_id, event
67
82
  @another_test_event_handled = true
@@ -71,4 +86,4 @@ class DummyEventhandler
71
86
  @class_macro_event_handled = true
72
87
  end
73
88
 
74
- end
89
+ end
@@ -6,7 +6,7 @@ class TestCommand
6
6
  end
7
7
  end
8
8
 
9
- class NonExistingCommand
9
+ class NonExistingCommand < Rcqrs::BaseCommand
10
10
 
11
11
  end
12
12
 
@@ -30,4 +30,4 @@ class TestCommandHandler < Rcqrs::BaseCommandHandler
30
30
  @execute_called
31
31
  end
32
32
 
33
- end
33
+ end
metadata CHANGED
@@ -1,60 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rcqrs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tim de Putter
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-12 00:00:00.000000000Z
11
+ date: 2015-11-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
- requirement: &70200857308760 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *70200857308760
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rspec-spies
27
- requirement: &70200857308340 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ! '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *70200857308340
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: activemodel
38
- requirement: &70200857307920 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
45
  - - ! '>='
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *70200857307920
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: uuid
49
- requirement: &70200857307480 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :runtime
56
63
  prerelease: false
57
- version_requirements: *70200857307480
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  description: Framework to provide cqrs + eventsourcing functionality in ruby.
59
70
  email:
60
71
  - tim.de.putter83@googlemail.com
@@ -111,27 +122,26 @@ files:
111
122
  - spec/test_event_bus.rb
112
123
  homepage:
113
124
  licenses: []
125
+ metadata: {}
114
126
  post_install_message:
115
127
  rdoc_options: []
116
128
  require_paths:
117
129
  - lib
118
130
  required_ruby_version: !ruby/object:Gem::Requirement
119
- none: false
120
131
  requirements:
121
132
  - - ! '>='
122
133
  - !ruby/object:Gem::Version
123
134
  version: '0'
124
135
  required_rubygems_version: !ruby/object:Gem::Requirement
125
- none: false
126
136
  requirements:
127
137
  - - ! '>='
128
138
  - !ruby/object:Gem::Version
129
139
  version: '0'
130
140
  requirements: []
131
141
  rubyforge_project: rcqrs
132
- rubygems_version: 1.8.10
142
+ rubygems_version: 2.4.6
133
143
  signing_key:
134
- specification_version: 3
144
+ specification_version: 4
135
145
  summary: Framework to provide cqrs + eventsourcing functionality in ruby.
136
146
  test_files:
137
147
  - spec/aggregate_root_base_spec.rb