Sha256: 044af869d5fcb2563791829c43e56972ecbe525cff88273a31510b44ecec0d00

Contents?: true

Size: 954 Bytes

Versions: 8

Compression:

Stored size: 954 Bytes

Contents

module Eco
  module API
    module Policies
      class UsedPolicies < Eco::API::UseCases::UseGroup

        attr_reader :policies

        def add(policy)
          raise "Expected Policy object. Given: #{policy}" if !policy || !policy.is_a?(Policy)
          super(policy)
        end

        def define(name, type: :transform, &block)
          Policy.new(name, type: type, root: self, &block).tap do |policy|
            add(policy)
          end
        end

        # TODO: decide if policies deal with queue or single person
        def launch(people:, session:, options: {})

          args = {
            people:  people,
            session: session,
            options: options
          }

          items.map do |policy|
            session.logger.debug("UsedPolicies: going to process '#{policy.name}' policy")
            policy.launch(**args)
          end
        end
      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
eco-helpers-0.9.2 lib/eco/api/policies/used_policies.rb
eco-helpers-0.9.1 lib/eco/api/policies/used_policies.rb
eco-helpers-0.8.4 lib/eco/api/policies/used_policies.rb
eco-helpers-0.8.3 lib/eco/api/policies/used_policies.rb
eco-helpers-0.8.2 lib/eco/api/policies/used_policies.rb
eco-helpers-0.8.1 lib/eco/api/policies/used_policies.rb
eco-helpers-0.7.2 lib/eco/api/policies/used_policies.rb
eco-helpers-0.7.1 lib/eco/api/policies/used_policies.rb