Sha256: e0bff6ec274ef072a9833e7afde2f9c36e023460303957e803dc60896012e191
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
require 'ostruct' module Staccato module Rack # Proxy Class to do page views class PageView < OpenStruct def initialize super @custom_metrics = [] @custom_dimensions = [] end def add_custom_metric(position, value) @custom_metrics << [position, value] end def add_custom_dimension(position, value) @custom_dimensions << [position, value] end def track!(default_tracker, tracking_id, request) page_view_params = marshal_dump if page_view_params[:client_id] tracker = Staccato.tracker(tracking_id, page_view_params[:client_id]) do |c| c.adapter = FaradayHttpAdaper.new(logger) unless tracking_id == nil end else tracker = default_tracker end track_hit(tracker, page_view_params, request) end private def track_hit(tracker, page_view_params, request) hit = Staccato::Pageview.new(tracker, { path: request.fullpath, user_agent: request.env['HTTP_USER_AGENT'], user_ip: request.ip }.merge(page_view_params)) add_custom_to_hit(hit) hit.track! hit end def add_custom_to_hit(hit) @custom_metrics.each do |p, v| hit.add_custom_metric(p, v) end @custom_dimensions.each do |p, v| hit.add_custom_dimension(p, v) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
staccato-rack-0.4.2 | lib/staccato/rack/page_view.rb |