simple_event_sourcing 0.8.0 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae87508c0ddc3384c7f2011ea0b8ed3700620cadc889164ae06776cdaa79cb4d
4
- data.tar.gz: e5a91b0012ee57ccb2451a229c38a0c45f10fe27c400ba7d8f53e616b4da794c
3
+ metadata.gz: 86e29f8273b8e6cd8238ada4990bceb29514fc537c567d8e9809b30c467ad86a
4
+ data.tar.gz: 0e7cfcb7d53f1d0ec4933c231181700cc10c06733677d43296a914a2e4e104f3
5
5
  SHA512:
6
- metadata.gz: 42d2a999148a1211598af7b5e9a8361c5bd769e9e73529cb06a7c5ff94d6a3e3f16d896f39e6416c84dae67e49b02f223c1afd5e5d7742ade56d6e92f62db8a5
7
- data.tar.gz: ef5175ce65a340e3008bd9b6bbb676a6f027073c0eb8cdd79d212092730f89ca3596b74f388bd65328e6d75c27e083fda7c941cad8d2ff3bf0ea25dd03c174bd
6
+ metadata.gz: aa2fdf5c9f120fb9dd51327b9352fad6f51f7ed684a1c66b6e536e6615a6b09602f1109f8b833536210806234ecd374761ef7a4e8b5173ff13fcfdf5fb0927e3
7
+ data.tar.gz: ff05314936adc654b36453d3ce7d94d334cd61f6b4f40ad7a1f43b70547de34a7cee72f0946920e49beb7f8bdf882b406be131ce518ff96831496e169debd9ad
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_event_sourcing (0.8.0)
4
+ simple_event_sourcing (0.9.0)
5
+ redis
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
9
10
  diff-lcs (1.3)
10
11
  docile (1.3.0)
11
- facets (3.1.0)
12
12
  json (2.1.0)
13
13
  rake (10.5.0)
14
14
  redis (4.0.1)
@@ -37,9 +37,7 @@ PLATFORMS
37
37
 
38
38
  DEPENDENCIES
39
39
  bundler (~> 1.16)
40
- facets
41
40
  rake (~> 10.0)
42
- redis
43
41
  rspec (~> 3.0)
44
42
  simple_event_sourcing!
45
43
  simplecov
@@ -4,7 +4,6 @@ module SimpleEventSourcing
4
4
  module Base
5
5
 
6
6
  attr_accessor :aggregate_id
7
- attr_reader :events
8
7
 
9
8
  def initialize(_args = nil)
10
9
  @events = []
@@ -15,15 +14,26 @@ module SimpleEventSourcing
15
14
  (@events.count > 0)
16
15
  end
17
16
 
18
- def publish_events
17
+ def publish
19
18
  published_events = @events
20
19
  clear_events
21
20
  published_events
22
21
  end
23
22
 
24
- def handle_message(message)
25
- handler = self.class.message_mapping[message.class]
26
- self.instance_exec(message, &handler) if handler
23
+ def apply_event(event)
24
+ handler = self.class.event_mapping[event.class]
25
+ self.instance_exec(event, &handler) if handler
26
+ end
27
+
28
+ def apply_record_event(event_class, args = {})
29
+ args[:aggregate_id] ||= aggregate_id
30
+ event = event_class.new(args)
31
+ apply_event event
32
+ record_event event
33
+ end
34
+
35
+ def id
36
+ @aggregate_id.value
27
37
  end
28
38
 
29
39
  def self.included(o)
@@ -40,32 +50,25 @@ module SimpleEventSourcing
40
50
 
41
51
  def create_from_history(history)
42
52
  aggregate = self.create_from_agrregate_id history.aggregate_id
43
- history.each { |event| aggregate.handle_message event }
53
+ history.each { |event| aggregate.apply_event event }
44
54
  aggregate
45
55
  end
46
56
 
47
57
  def on(*message_classes, &block)
48
- message_classes.each { |message_class| message_mapping[message_class] = block }
58
+ message_classes.each { |message_class| event_mapping[message_class] = block }
49
59
  end
50
60
 
51
- def message_mapping
52
- @message_mapping ||= {}
61
+ def event_mapping
62
+ @event_mapping ||= {}
53
63
  end
54
64
 
55
- def handles_message?(message)
56
- message_mapping.keys.include? message.class
65
+ def handles_event?(event)
66
+ event_mapping.keys.include? event.class
57
67
  end
58
68
  end
59
69
 
60
70
  private
61
71
 
62
- def apply_record_event(event_class, args = {})
63
- args[:aggregate_id] ||= aggregate_id
64
- event = event_class.new(args)
65
- handle_message(event)
66
- record_event event
67
- end
68
-
69
72
  def record_event(event)
70
73
  @events << event
71
74
  end
@@ -73,8 +76,6 @@ module SimpleEventSourcing
73
76
  def clear_events
74
77
  @events = []
75
78
  end
76
-
77
-
78
79
  end
79
80
  end
80
81
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleEventSourcing
2
- VERSION = "0.8.0"
2
+ VERSION = "0.9.0"
3
3
  end
@@ -29,12 +29,14 @@ Gem::Specification.new do |spec|
29
29
  spec.bindir = "exe"
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
-
32
+ # Development dependencies
33
33
  spec.add_development_dependency "bundler", "~> 1.16"
34
34
  spec.add_development_dependency "rake", "~> 10.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.0"
36
- spec.add_development_dependency "facets"
36
+ #spec.add_development_dependency "facets"
37
37
  spec.add_development_dependency "simplecov"
38
38
  spec.add_development_dependency "timecop"
39
- spec.add_development_dependency "redis"
39
+
40
+ # Runtime dependencies
41
+ spec.add_runtime_dependency "redis"
40
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_event_sourcing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel López Torrent
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-27 00:00:00.000000000 Z
11
+ date: 2018-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- - !ruby/object:Gem::Dependency
56
- name: facets
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: simplecov
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -101,7 +87,7 @@ dependencies:
101
87
  - - ">="
102
88
  - !ruby/object:Gem::Version
103
89
  version: '0'
104
- type: :development
90
+ type: :runtime
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements: