goncalvesjoao/rest_my_case

View on GitHub
lib/rest_my_case/trial/court.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module RestMyCase
  module Trial
    Court = Struct.new :judge_class,
                       :defense_attorney_class,
                       :last_ancestor,
                       :context_class do
      def execute(use_case_classes, attributes = {})
        trial_case = Case.new \
          last_ancestor, context_class, use_case_classes, attributes

        defense_attorney_class.new(trial_case).build_case_for_the_defendant

        judge_class.new(trial_case).determine_the_sentence

        trial_case
      end
    end
  end
end