Sha256: 5a7e56093e85f1e197d578b1dfc8016eba98d0da0ba847406a801b0bc56da414

Contents?: true

Size: 847 Bytes

Versions: 5

Compression:

Stored size: 847 Bytes

Contents

module CurationConcerns
  module Actors
    class ActorFactory
      def self.build(curation_concern, current_user)
        Actors::ActorStack.new(curation_concern,
                               current_user,
                               stack_actors(curation_concern))
      end

      def self.stack_actors(curation_concern)
        [OptimisticLockValidator,
         AddToCollectionActor,
         AddToWorkActor,
         AssignRepresentativeActor,
         AttachFilesActor,
         ApplyOrderActor,
         InterpretVisibilityActor,
         model_actor(curation_concern),
         InitializeWorkflowActor]
      end

      def self.model_actor(curation_concern)
        actor_identifier = curation_concern.class.to_s.split('::').last
        "CurationConcerns::Actors::#{actor_identifier}Actor".constantize
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
curation_concerns-1.7.8 app/services/curation_concerns/actors/actor_factory.rb
curation_concerns-1.7.7 app/services/curation_concerns/actors/actor_factory.rb
curation_concerns-1.7.6 app/services/curation_concerns/actors/actor_factory.rb
curation_concerns-1.7.5 app/services/curation_concerns/actors/actor_factory.rb
curation_concerns-1.7.4 app/services/curation_concerns/actors/actor_factory.rb