rcqrs 0.1.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 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