Class: Mengpaneel::Strategy::ClientSide

Inherits:
Base
  • Object
show all
Defined in:
lib/mengpaneel/strategy/client_side.rb

Constant Summary collapse

SETUP_CODE =
<<-CODE.strip_heredoc
  (function(f,b){if(!b.__SV){var a,e,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");
  for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=f.createElement("script");a.type="text/javascript";a.async=!0;a.src="//cdn.mxpnl.com/libs/mixpanel-2.2.min.js";e=f.getElementsByTagName("script")[0];e.parentNode.insertBefore(a,e)}})(document,window.mixpanel||[]);
CODE

Instance Attribute Summary

Attributes inherited from Base

#all_calls, #controller

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Mengpaneel::Strategy::Base

Instance Method Details

#runObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/mengpaneel/strategy/client_side.rb', line 14

def run
  return false unless controller
  return false unless client_side?

  response_body = response.body

  head_end = response_body.index("</head")
  return false unless head_end

  if source = source_for_head
    response_body.insert(head_end, source)
  end

  body_end = response_body.index("</body")
  return false unless body_end

  if source = source_for_body
    response_body.insert(body_end, source)
  end

  response.body = response_body

  true
end