Class: JonathanNelson::WoopraAnalytics
- Inherits:
-
Object
- Object
- JonathanNelson::WoopraAnalytics
- Defined in:
- lib/jonathannelson/woopra_analytics.rb
Overview
The core functionality to connect a Rails application to a Woopra Analytics installation.
-
domain_name
Specify a different domain name from the default. See the Woopra Analytics documentation for more information.
-
analytics_url
I can’t see why you’d want to do this, but you can always change the Woopra Analytics URL.
-
analytics_ssl_url
I can’t see why you’d want to do this, but you can always change the Woopra Analytics URL (ssl version).
-
environments
The environments in which to enable the Woopra Analytics code. Defaults to ‘production’ only. Supply an array of environment names to change this.
-
formats
The formats for which to add. Defaults to :html
only. Supply an array of formats to change this.
-
defer_load
Set this to true (the default) if you want to load the Analytics javascript at the bottom of page. Set this to false if you want to load the Analytics javascript at the top of the page. The page will render faster if you set this to true.
-
local_javascript
Set this to true to use a local copy of the woopra.js (or /js/woopra.js) file. This gives you the added benefit of serving the JS directly from your server, which in case of a big geographical difference between your server and Woopra’s can speed things up for your visitors. Use the ‘woopra_analytics:update’ rake task to update the local JS copies.
-
override_domain_name
Set this to override the initialized domain name for a single render. Useful when you’re serving to multiple hosts from a single codebase. Typically you’d set up a before filter in the appropriate controller:
before_filter :override_domain_name
def override_domain_name
JonathanNelson::WoopraAnalytics.override_domain_name = 'foo.com'
end
...
Constant Summary collapse
- @@domain_name =
nil
- @@analytics_url =
'http://static.woopra.com/js/woopra.js'
- @@analytics_ssl_url =
'https://sec1.woopra.com/js/woopra.js'
- @@environments =
['production']
- @@formats =
[:html]
- @@defer_load =
true
- @@local_javascript =
false
Class Method Summary collapse
-
.enabled?(format) ⇒ Boolean
Return true if the Woopra Analytics system is enabled and configured correctly for the specified format.
-
.woopra_analytics_code(ssl = false) ⇒ Object
Construct the javascript code to be inserted on the calling page.
Class Method Details
.enabled?(format) ⇒ Boolean
Return true if the Woopra Analytics system is enabled and configured correctly for the specified format
99 100 101 102 |
# File 'lib/jonathannelson/woopra_analytics.rb', line 99 def self.enabled?(format) raise JonathanNelson::WoopraAnalyticsConfigurationError if analytics_url.blank? environments.include?(RAILS_ENV) && formats.include?(format.to_sym) end |
.woopra_analytics_code(ssl = false) ⇒ Object
Construct the javascript code to be inserted on the calling page.
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/jonathannelson/woopra_analytics.rb', line 105 def self.woopra_analytics_code(ssl = false) extra_code = domain_name.blank? ? nil : "pageTracker._setDomainName(\"#{domain_name}\");" if !override_domain_name.blank? extra_code = "pageTracker._setDomainName(\"#{override_domain_name}\");" self.override_domain_name = nil end code = if local_javascript <<-HTML <script src="#{LocalAssetTagHelper.new.javascript_path( '/js/woopra.js' )}" type="text/javascript"> </script> HTML else <<-HTML <!-- Woopra Code Start --> <script type="text/javascript"> var _wh = ((document.location.protocol=="https:") ? "https://sec1.woopra.com" : "http://static.woopra.com"); document.write(unescape("%3Cscript src='" + _wh + "/js/woopra.js' type='text/javascript'%3E%3C/script%3E")); </script> <!-- Woopra Code End --> HTML end end |