Sha256: 21a5f6efe02e68e8f72c099d8d971ff8db38d425da4409bc195a3ade165155e1

Contents?: true

Size: 1.11 KB

Versions: 16

Compression:

Stored size: 1.11 KB

Contents

require 'staccato/measurable'
require 'staccato/null_measurement'

require 'staccato/measurement/checkout'
require 'staccato/measurement/checkout_option'
require 'staccato/measurement/impression_list'
require 'staccato/measurement/product'
require 'staccato/measurement/product_impression'
require 'staccato/measurement/promotion'
require 'staccato/measurement/transaction'

module Staccato
  # Classes for measurements to be add to Hits
  module Measurement
    # List of measurement classes by lookup key
    TYPES = Hash[
      [
        Checkout,
        CheckoutOption,
        ImpressionList,
        Product,
        ProductImpression,
        Promotion,
        Transaction
      ].map { |k| [k.lookup_key, k] }
    ].freeze

    # Lookup a measurement class by its key
    # @param key [Symbol]
    # @return [Class] measurement class or NullMeasurement
    def lookup(key)
      measurement_types[key] || NullMeasurement
    end
    module_function :lookup

    # List of measurement classes by lookup key
    # @return [Hash]
    def measurement_types
      TYPES
    end
    module_function :measurement_types
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
staccato-0.5.3 lib/staccato/measurement.rb
staccato-0.5.2 lib/staccato/measurement.rb
staccato-0.5.1 lib/staccato/measurement.rb
staccato-0.5.0 lib/staccato/measurement.rb
staccato-0.4.7 lib/staccato/measurement.rb
staccato-0.4.6 lib/staccato/measurement.rb
staccato-0.4.5 lib/staccato/measurement.rb
staccato-0.4.4 lib/staccato/measurement.rb
staccato-0.4.3 lib/staccato/measurement.rb
staccato-0.4.2 lib/staccato/measurement.rb
staccato-0.4.1 lib/staccato/measurement.rb
staccato-0.4.0 lib/staccato/measurement.rb
staccato-0.3.1 lib/staccato/measurement.rb
staccato-0.3.0 lib/staccato/measurement.rb
staccato-0.2.1 lib/staccato/measurement.rb
staccato-0.2.0 lib/staccato/measurement.rb