Class: IscAnalytics::Services

Inherits:
Object
  • Object
show all
Defined in:
lib/isc_analytics/services.rb

Class Method Summary collapse

Class Method Details

.google_tag(key) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/isc_analytics/services.rb', line 31

def self.google_tag(key)
  Tags.script_tag <<-SCRIPT
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', '#{key}']);
    _gaq.push(['_trackPageview']);
    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  SCRIPT
end

.ipinfodb_tag(key) ⇒ Object



54
55
56
57
# File 'lib/isc_analytics/services.rb', line 54

def self.ipinfodb_tag(key)
  return nil if key.blank?
  Tags.script_tag "window.IPINFODB_KEY = '#{key}';"
end

.kissmetrics_tag(key) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/isc_analytics/services.rb', line 16

def self.kissmetrics_tag(key)
  Tags.script_tag <<-SCRIPT
  var _kmq = _kmq || [];
  function _kms(u){
    setTimeout(function(){
      var s = document.createElement('script'); var f = document.getElementsByTagName('script')[0];
      s.type = 'text/javascript'; s.async = true;
      s.src = u; f.parentNode.insertBefore(s, f);
    }, 1);
  }
  _kms('//i.kissmetrics.com/i.js');
  _kms('//doug1izaerwt3.cloudfront.net/#{key}.1.js');
  SCRIPT
end

.optimizely_tag(key) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/isc_analytics/services.rb', line 44

def self.optimizely_tag(key)
  return nil if key.blank?
  <<-HTML
    <script src='//cdn.optimizely.com/js/#{key}.js\'></script>
    <script type="text/javascript">
      window['optimizely'] = optimizely || [];
    </script>
  HTML
end

.scripts(accounts) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/isc_analytics/services.rb', line 7

def self.scripts(accounts)
  [
      kissmetrics_tag(accounts.kissmetrics_key),
      google_tag(accounts.google_analytics_key),
      optimizely_tag(accounts.optimizely_key),
      ipinfodb_tag(accounts.ipinfodb_key)
  ]
end