Sha256: 53e4bdc745772df321d475c5ce1ed9cb4ad276949e0598a674d74d5e1a9a7b82

Contents?: true

Size: 980 Bytes

Versions: 12

Compression:

Stored size: 980 Bytes

Contents

class Rack::Tracker::Zanox < Rack::Tracker::Handler

  # name of the handler
  # everything after is passed as options
  class Mastertag < OpenStruct
    def write
      to_h.except(:id).map do |k,v|
        "var zx_#{k} = #{v.to_json};"
      end.join("\n")
    end
  end

  class Lead < OpenStruct
    # Example: OrderID=[[DEFC-4321]]&CurrencySymbol=[[EUR]]&TotalPrice=[[23.40]]
    def write
      to_h.map do |k,v|
        "#{k.to_s.camelize}=[[#{v}]]"
      end.join('&')
    end
  end

  Sale = Class.new(Lead)

  self.position = :body

  def mastertag
    # First event should be stronger, e.g. one signs up and gets redirected to homepage
    # "sign up" should be tracked instead of "view homepage"
    events.select{ |event| event.class.to_s.demodulize == 'Mastertag' }.first
  end

  def lead_events
    events.select{ |event| event.class.to_s.demodulize == 'Lead' }
  end

  def sale_events
    events.select{ |event| event.class.to_s.demodulize == 'Sale' }
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rack-tracker-1.13.0 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.12.1 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.12.0 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.11.2 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.11.1 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.11.0 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.10.0 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.9.0 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.8.0 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.7.0 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.6.0 lib/rack/tracker/zanox/zanox.rb
rack-tracker-1.5.0 lib/rack/tracker/zanox/zanox.rb