Sha256: 32379d9868869f8e267c77790dc6954466dd4e9848aea49b2272a36f008a168c

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    module TaskRouter
      class WorkerStatistic
        cattr_accessor :attributes

        WorkerStatistic = Struct.new(:attributes) do
          def realtime
            activities = attributes.map do |a|
              { activity: a.activity_name, sid: a.sid }
            end.uniq

            statistics = []

            activities.each do |a|
              stats = {}
              stats[:friendly_name] = a[:activity]
              stats[:sid] = a[:sid]
              stats[:workers] = attributes.select do |w|
                w.activity_name == a[:activity]
              end.length

              statistics << stats
            end

            {
              total_workers: attributes.length,
              activity_statistics: statistics
            }
          end
        end

        def initialize(attributes = {})
          self.attributes = attributes
        end

        def statistics
          @statistics ||= WorkerStatistic.new(attributes)
        end

        def fetch
          statistics
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
twilio_base-1.11.1101 spec/support/twilio_base/fake/task_router/worker_statistic.rb
twilio_base-1.11.11 spec/support/twilio_base/fake/task_router/worker_statistic.rb