Sha256: 3fd8662e5ec2a07927bc16a33973fdecda2588859a14c276117da37d1f8a7024

Contents?: true

Size: 852 Bytes

Versions: 4

Compression:

Stored size: 852 Bytes

Contents

require 'alephant/logger'
require 'alephant/broker/component'
require 'pmap'

module Alephant
  module Broker
    module Request
      class Batch
        include Logger

        attr_reader :batch_id, :components, :load_strategy

        def initialize(component_factory, env)
          logger.debug("Request::Batch#initialize(#{env.settings})")

          @component_factory = component_factory
          @batch_id   = env.data['batch_id']
          @components = components_for env

          logger.debug("Request::Batch#initialize: id: #{@batch_id}")
        end

        private

        def components_for(env)
          env.data['components'].pmap do |c|
            @component_factory.create(
              c['component'],
              batch_id,
              c['options']
            )
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
alephant-broker-3.0.0 lib/alephant/broker/request/batch.rb
alephant-broker-2.1.3 lib/alephant/broker/request/batch.rb
alephant-broker-2.1.2 lib/alephant/broker/request/batch.rb
alephant-broker-2.1.1 lib/alephant/broker/request/batch.rb