Class: Yes::Core::Aggregate::Dsl::MethodDefiners::CommandGroup::CommandGroup
- Inherits:
-
Base
- Object
- Base
- Yes::Core::Aggregate::Dsl::MethodDefiners::CommandGroup::CommandGroup
- Defined in:
- lib/yes/core/aggregate/dsl/method_definers/command_group/command_group.rb
Overview
Defines ‘aggregate.<group_name>(payload = nil, **options)` on the aggregate class. Mirrors Yes::Core::Aggregate::Dsl::MethodDefiners::Command::Command but delegates to CommandHandling::CommandGroupHandler.
Instance Method Summary collapse
Methods inherited from Base
Constructor Details
This class inherits a constructor from Yes::Core::Aggregate::Dsl::MethodDefiners::CommandGroup::Base
Instance Method Details
#call ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/yes/core/aggregate/dsl/method_definers/command_group/command_group.rb', line 13 def call group_name = @name aggregate_class.define_method(group_name) do |payload = nil, **| payload = payload.clone if payload.is_a?(Hash) guards = .delete(:guards) guards = true if guards.nil? = .delete(:metadata) if payload.nil? && !.empty? payload = elsif payload.nil? payload = {} end Yes::Core::CommandHandling::CommandGroupHandler.new(self).call( group_name, payload, guards:, metadata: ) end end |