Sha256: f9acebb0570303d7e5772160438c57cb1a8320fbf94b7b674da4e8807bcb9504
Contents?: true
Size: 712 Bytes
Versions: 2
Compression:
Stored size: 712 Bytes
Contents
# frozen_string_literal: true require 'dry/monads/all' require 'clean_architecture/interfaces/strategy' module CleanArchitecture module Strategies class ActorGetsAuthorizedThenDoesWork extend Forwardable implements_interface Interfaces::Strategy def initialize(authorization_check, sub_strategy) @authorization_check = authorization_check @sub_strategy = sub_strategy end def_delegator :@sub_strategy, :parameters def result @result ||= begin if @authorization_check.authorized? @sub_strategy.result else Dry::Monads::Failure('Unauthorized') end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems