module Split::Analytics
Constants
- VERSION
Public Instance Methods
custom_variables()
click to toggle source
# File lib/split/analytics.rb, line 33 def custom_variables return nil if session.nil? arr = [] session.each_with_index do |h, i| arr << "_gaq.push([\"_setCustomVar\", #{i + 1}, \"#{h[0]}\", \"#{h[1]}\", 1]);" end arr.reverse[0..4].reverse.join("\n") end
tracking_code(options = {})
click to toggle source
# File lib/split/analytics.rb, line 5 def tracking_code(options = {}) # needs more options: http://code.google.com/apis/analytics/docs/gaJS/gaJSApi.html account = options.delete(:account) tracker_url = options.delete(:tracker_url) ssl_tracker_url = options.delete(:ssl_tracker_url) tracker_methods = options.delete(:tracker_methods) tracker_url = 'http://' + (tracker_url || 'www.google-analytics.com/ga.js') ssl_tracker_url = 'https://' + (ssl_tracker_url || 'ssl.google-analytics.com/ga.js') code = <<-EOF <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(["_setAccount", "#{account}"]); #{insert_tracker_methods(tracker_methods)} #{custom_variables} _gaq.push(["_trackPageview"]); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? '#{ssl_tracker_url}' : '#{tracker_url}'); var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> EOF code = raw(code) if defined?(raw) code end
Private Instance Methods
insert_tracker_methods(tracker_methods)
click to toggle source
# File lib/split/analytics.rb, line 45 def insert_tracker_methods(tracker_methods) return nil if tracker_methods.nil? arr = [] tracker_methods.each do |k, v| if v.class == String && v.empty? # No argument tracker method arr << "_gaq.push([\"" + "_" + "#{k}\"]);" else case v when String # String argument tracker method arr << "_gaq.push([\"" + '_' + "#{k}\", \"#{v}\"]);" when TrueClass # Boolean argument tracker method arr << "_gaq.push([\"" + '_' + "#{k}\", #{v}]);" when FalseClass # Boolean argument tracker method arr << "_gaq.push([\"" + '_' + "#{k}\", #{v}]);" when Array # Array argument tracker method values = v.map { |value| "\"#{value}\"" }.join(', ') arr << "_gaq.push([\"" + '_' + "#{k}\", #{values}]);" end end end arr.join("\n") end