From 71a819144e042893ef9d0fd6db7a0ddcd5e03b7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Pacana?= Date: Fri, 24 Nov 2023 13:42:05 +0100 Subject: [PATCH] Into pattern matching --- .../lib/project_management/handler.rb | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/examples/aggregate_root/lib/project_management/handler.rb b/examples/aggregate_root/lib/project_management/handler.rb index 2c16beb..ef73897 100644 --- a/examples/aggregate_root/lib/project_management/handler.rb +++ b/examples/aggregate_root/lib/project_management/handler.rb @@ -6,18 +6,18 @@ def initialize(event_store) def call(cmd) case cmd - when CreateIssue - create(cmd) - when ResolveIssue - resolve(cmd) - when CloseIssue - close(cmd) - when ReopenIssue - reopen(cmd) - when StartIssueProgress - start(cmd) - when StopIssueProgress - stop(cmd) + in CreateIssue[id:] + create(id) + in ResolveIssue[id:] + resolve(id) + in CloseIssue[id:] + close(id) + in ReopenIssue[id:] + reopen(id) + in StartIssueProgress[id:] + start(id) + in StopIssueProgress[id:] + stop(id) end rescue Issue::InvalidTransition raise Error @@ -25,43 +25,43 @@ def call(cmd) private - def create(cmd) - issue, stream_name = Issue.new(cmd.id), stream_name(cmd.id) + def create(id) + issue, stream_name = Issue.new(id), stream_name(id) @repository.load(issue, stream_name) issue.open @repository.store(issue, stream_name) end - def resolve(cmd) - issue, stream_name = Issue.new(cmd.id), stream_name(cmd.id) + def resolve(id) + issue, stream_name = Issue.new(id), stream_name(id) @repository.load(issue, stream_name) issue.resolve @repository.store(issue, stream_name) end - def close(cmd) - issue, stream_name = Issue.new(cmd.id), stream_name(cmd.id) + def close(id) + issue, stream_name = Issue.new(id), stream_name(id) @repository.load(issue, stream_name) issue.close @repository.store(issue, stream_name) end - def reopen(cmd) - issue, stream_name = Issue.new(cmd.id), stream_name(cmd.id) + def reopen(id) + issue, stream_name = Issue.new(id), stream_name(id) @repository.load(issue, stream_name) issue.reopen @repository.store(issue, stream_name) end - def start(cmd) - issue, stream_name = Issue.new(cmd.id), stream_name(cmd.id) + def start(id) + issue, stream_name = Issue.new(id), stream_name(id) @repository.load(issue, stream_name) issue.start @repository.store(issue, stream_name) end - def stop(cmd) - issue, stream_name = Issue.new(cmd.id), stream_name(cmd.id) + def stop(id) + issue, stream_name = Issue.new(id), stream_name(id) @repository.load(issue, stream_name) issue.stop @repository.store(issue, stream_name)