class UserRegistrationService
class Result
attr_reader :user, :errors
def initialize(success:, user: nil, errors: [])
@success = success
class CheckoutService
def initialize(cart:, user:)
@cart = cart
@user = user
end
class ApplicationCommand
Result = Struct.new(:value, :errors) do
def success?
errors.nil? || errors.empty?
end
module BoundedFanOut
Result = Struct.new(:value, :error) do
def ok?
error.nil?
end
end
module Posts
class CreateService
def initialize(author:, params:)
@author = author
@params = params
end