Sha256: a422bf3290de65e573afd8bcc626bdbb375f9b91be2b9164523e8f0a9a5f38cb
Contents?: true
Size: 1.08 KB
Versions: 3
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true require 'clean_architecture/entities/use_case_history_entry' require 'clean_architecture/interfaces/strategy' require 'duckface' module CleanArchitecture module Strategies class WithAuditTrail implements_interface Interfaces::Strategy extend Forwardable def initialize(use_case_class, sub_strategy, use_case_target) @use_case_class = use_case_class @sub_strategy = sub_strategy @use_case_target = use_case_target end def result @result ||= begin strategy_result = @sub_strategy.result entry = new_use_case_history_entry(strategy_result) parameters.persistence.create_use_case_history_entry(entry) strategy_result end end def_delegator :@sub_strategy, :parameters private def new_use_case_history_entry(sub_strategy_result) Entities::UseCaseHistoryEntry.new( @use_case_class, @sub_strategy.parameters, sub_strategy_result, @use_case_target ) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems