Sha256: 0634cd260cb7a40ad500803123d6814cfbe28254edb472e9299f59fc232ed15f

Contents?: true

Size: 816 Bytes

Versions: 1

Compression:

Stored size: 816 Bytes

Contents

class Rack::Tracker::GoogleGlobal < Rack::Tracker::Handler
  self.allowed_tracker_options = [:cookie_domain, :user_id,
    :link_attribution, :allow_display_features, :anonymize_ip,
    :custom_map]

  class Page < OpenStruct
    def params
      Hash[to_h.slice(:title, :location, :path).map { |key, value| ["page_#{key}", value] }]
    end
  end

  def pages
    events # TODO: Filter pages after Event is implemented
  end

  def trackers
    options[:trackers].map { |tracker|
      tracker[:id].respond_to?(:call) ? tracker.merge(id: tracker[:id].call(env)) : tracker
    }.reject { |tracker| tracker[:id].nil? }
  end

  def set_options
    @_set_options ||= build_set_options
  end

  private

  def build_set_options
    value = options[:set]
    value.respond_to?(:call) ? value.call(env) : value
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-tracker-1.8.0 lib/rack/tracker/google_global/google_global.rb