Commit 177b3289eb14e584dfcaefbac0153cc981f82187

Authored by Dan Croak
1 parent 732ed33c

removing google analytics vendored gem. keeping it in production env, .gems for heroku

vendor/gems/rubaidh-google_analytics-1.1.4/CREDITS
... ... @@ -1,14 +0,0 @@
1   -This plugin was initially release by Graeme Mathieson, of Rubaidh Ltd.
2   -However, since it appeared on github, it has benefited from the contributions
3   -of many, including:
4   -
5   -* Mike Gunderloy (ffmike)
6   -* Mark Catley (markcatley)
7   -* Kenneth Kalmer (kennethkalmer)
8   -* Daniel Morrison (danielmorrison)
9   -
10   -Thank you to all these folks for their contributions, and thank you also to
11   -Github for facilitating their contribution without having to wait for me to
12   -accept patches!
13   -
14   -If I've missed anybody out, please fork, patch and send me a pull request. :-)
vendor/gems/rubaidh-google_analytics-1.1.4/MIT-LICENSE
... ... @@ -1,20 +0,0 @@
1   -Copyright (c) 2006-2008 Rubaidh Ltd.
2   -
3   -Permission is hereby granted, free of charge, to any person obtaining
4   -a copy of this software and associated documentation files (the
5   -"Software"), to deal in the Software without restriction, including
6   -without limitation the rights to use, copy, modify, merge, publish,
7   -distribute, sublicense, and/or sell copies of the Software, and to
8   -permit persons to whom the Software is furnished to do so, subject to
9   -the following conditions:
10   -
11   -The above copyright notice and this permission notice shall be
12   -included in all copies or substantial portions of the Software.
13   -
14   -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15   -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16   -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17   -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18   -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19   -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20   -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
vendor/gems/rubaidh-google_analytics-1.1.4/README.rdoc
... ... @@ -1,124 +0,0 @@
1   -= GoogleAnalytics
2   -
3   -This plugin enables Google Analytics support in your application. By default
4   -it will output the analytics code for every single page automatically, if it
5   -is configured correctly. This is done by adding:
6   -
7   - Rubaidh::GoogleAnalytics.tracker_id = 'UA-12345-67'
8   -
9   -to your <tt>config/environment.rb</tt>, inserting your own tracker id. This
10   -can be discovered by looking at the value assigned to +_uacct+ in the
11   -Javascript code.
12   -
13   -If you want to disable the code insertion for particular pages, add the
14   -following to controllers that don't want it:
15   -
16   - skip_after_filter :add_google_analytics_code
17   -
18   -If you are running rails 2.1 or above add install this by adding:
19   -
20   - config.gem 'rubaidh-google_analytics', :lib => 'rubaidh/google_analytics', :source => 'http://gems.github.com'
21   -
22   -and run:
23   -
24   - rake gems:install
25   -
26   -Simple. :-)
27   -
28   -
29   -== Note
30   -
31   -This version of the plugin uses the new Google Analytics code (ga.js) by
32   -default. To use the legacy tracking code add the following line to your
33   -<tt>config/environment.rb</tt>:
34   -
35   - Rubaidh::GoogleAnalytics.legacy_mode = true
36   -
37   -== Tracking outbound Links
38   -
39   -Google Analytics only tracks intra-site links by default. To create an
40   -outbound link that is tracked use the link_to_tracked helper:
41   -
42   - link_to_tracked(name, track_path = "/", options = {}, html_options = {})
43   -
44   -You can use the track_path parameter to group your outbound links into logical
45   -folders inside of Google Analytics.
46   -
47   -The other forms of link_to are also supported:
48   -
49   - link_to_tracked_if(condition, name, track_path = "/", options = {}, html_options = {}, &block)
50   - link_to_tracked_unless(condition, name, track_path = "/", options = {}, html_options = {}, &block)
51   - link_to_tracked_unless_current(name, track_path = "/", options = {}, html_options = {}, &block)
52   -
53   -To track outbound links, you should set
54   -
55   - Rubaidh::GoogleAnalytics.defer_load = false
56   -
57   -This will move the tracking javascript to the top of your page.
58   -(see http://www.google.com/support/googleanalytics/bin/answer.py?answer=55527&topic=11006)
59   -
60   -Tracked links respect the legacy_mode flag.
61   -
62   -Note: Link-tracking works by inserting onclick() code in the HTML. Because of
63   -this, it will overwrite any onclick that you insert in the html_options hash.
64   -
65   -== Using local copies of the Analytics Javascript files
66   -
67   -Under certain circumstances you might find it valuable to serve a copy of the
68   -Analytics JavaScript directly from your server to your visitors, and not
69   -directly from Google. If your visitors are geograhically very far from Google,
70   -or if they have low quality international bandwidth, the loading time for the
71   -Analytics JS might kill the user experience and force you to remove the
72   -valuable tracking code from your site.
73   -
74   -This plugin now supports local copies of the legacy and new Analytics
75   -JavaScript files, updated via a rake task and served courtesy of the Rails
76   -AssetTagHelper methods. So even if you use asset hosts, the JS will be served
77   -from the correct source and under the correct protocol (HTTP/HTTPS).
78   -
79   -To enable cached copies and the following to your initialization code:
80   -
81   - Rubaidh::GoogleAnalytics.local_javascript = true
82   -
83   -Use the following rake task to update the local copy of the JavaScript file:
84   -
85   - rake google_analytics:updates
86   -
87   -To keep the file updated you can add the following to your Capistrano
88   -configuration:
89   -
90   - after "deploy:symlink", "deploy:google_analytics"
91   -
92   - namespace :deploy do
93   - desc "Update local Google Analytics files"
94   - task :google_analytics, :role => :web do
95   - run "cd #{current_path} && rake google_analytics:update RAILS_ENV=#{ENV['RAILS_ENV']}"
96   - end
97   - end
98   -
99   -The above Capistrano recipe will almost certainly need some adjustments based
100   -on how you run your deployments, but you should get the idea.
101   -
102   -== Overriding application-default values
103   -
104   -If you're using one Rails application to serve pages across multiple domains,
105   -you may wish to override the domain and tracker ID values on a
106   -controller-by-controller or view-by-view basis. You can do this by setting the
107   -override_domain_name and override_tracker_id properties. These properties are
108   -automatically reset after each use, so the values you set for domain_name and
109   -tracker_id (usually in an initializer) will apply to all other requests.
110   -
111   - before_filter :local_analytics
112   -
113   - def local_analytics
114   - Rubaidh::GoogleAnalytics.override_domain_name = 'foo.com'
115   - Rubaidh::GoogleAnalytics.override_tracker_id = 'UA-123456-7'
116   - end
117   -
118   -See the documentation for the GoogleAnalytics class for other configuration
119   -options.
120   -
121   -Note: You will need to have the mocha gem installed to run the tests for this
122   -plugin.
123   -
124   -Copyright (c) 2006-2008 Rubaidh Ltd, released under the MIT license.
vendor/gems/rubaidh-google_analytics-1.1.4/Rakefile
... ... @@ -1,50 +0,0 @@
1   -require 'rake'
2   -require 'rake/testtask'
3   -require 'rake/rdoctask'
4   -require 'rake/gempackagetask'
5   -require 'rcov/rcovtask'
6   -require 'rubyforge'
7   -
8   -desc 'Default: run unit tests.'
9   -task :default => :test
10   -
11   -task :clean => [:clobber_rdoc, :clobber_package]
12   -
13   -desc 'Test the google_analytics plugin.'
14   -Rake::TestTask.new(:test) do |t|
15   - t.libs << 'lib'
16   - t.pattern = 'test/**/*_test.rb'
17   - t.verbose = true
18   -end
19   -
20   -Rcov::RcovTask.new do |t|
21   - t.test_files = FileList["test/**/*_test.rb"]
22   - t.verbose = true
23   - t.rcov_opts = ["-x", "^/"]
24   -end
25   -
26   -desc 'Generate documentation for the google_analytics plugin.'
27   -Rake::RDocTask.new(:rdoc) do |rdoc|
28   - rdoc.rdoc_dir = 'rdoc'
29   - rdoc.title = 'GoogleAnalytics'
30   - rdoc.options << '--line-numbers' << '--inline-source'
31   - rdoc.rdoc_files.include('README.rdoc')
32   - rdoc.rdoc_files.include('lib/**/*.rb')
33   -end
34   -
35   -gem_spec = eval(File.read('google_analytics.gemspec'))
36   -
37   -Rake::GemPackageTask.new(gem_spec) do |p|
38   - p.need_tar = false
39   - p.need_zip = false
40   -end
41   -
42   -desc 'Package and upload the release to rubyforge.'
43   -task :release => [:clean, :package] do |t|
44   - rubyforge = RubyForge.new.configure
45   - rubyforge.login
46   - rubyforge.add_release gem_spec.rubyforge_project, gem_spec.name, gem_spec.version.to_s, "pkg/#{gem_spec.name}-#{gem_spec.version}.gem"
47   -end
48   -
49   -task :bamboo => [ :package, :rcov ] do
50   -end
vendor/gems/rubaidh-google_analytics-1.1.4/lib/rubaidh.rb
... ... @@ -1,2 +0,0 @@
1   -module Rubaidh #:nodoc:
2   -end
vendor/gems/rubaidh-google_analytics-1.1.4/lib/rubaidh/google_analytics.rb
... ... @@ -1,237 +0,0 @@
1   -require 'active_support'
2   -require 'action_pack'
3   -require 'action_view'
4   -
5   -module Rubaidh # :nodoc:
6   - # This module gets mixed in to ActionController::Base
7   - module GoogleAnalyticsMixin
8   - # The javascript code to enable Google Analytics on the current page.
9   - # Normally you won't need to call this directly; the +add_google_analytics_code+
10   - # after filter will insert it for you.
11   - def google_analytics_code
12   - GoogleAnalytics.google_analytics_code(request.ssl?) if GoogleAnalytics.enabled?(request.format)
13   - end
14   -
15   - # An after_filter to automatically add the analytics code.
16   - # If you intend to use the link_to_tracked view helpers, you need to set Rubaidh::GoogleAnalytics.defer_load = false
17   - # to load the code at the top of the page
18   - # (see http://www.google.com/support/googleanalytics/bin/answer.py?answer=55527&topic=11006)
19   - def add_google_analytics_code
20   - if GoogleAnalytics.defer_load
21   - response.body.sub! /<\/[bB][oO][dD][yY]>/, "#{google_analytics_code}</body>" if response.body.respond_to?(:sub!)
22   - else
23   - response.body.sub! /(<[bB][oO][dD][yY][^>]*>)/, "\\1#{google_analytics_code}" if response.body.respond_to?(:sub!)
24   - end
25   - end
26   - end
27   -
28   - class GoogleAnalyticsConfigurationError < StandardError; end
29   -
30   - # The core functionality to connect a Rails application
31   - # to a Google Analytics installation.
32   - class GoogleAnalytics
33   -
34   - @@tracker_id = nil
35   - ##
36   - # :singleton-method:
37   - # Specify the Google Analytics ID for this web site. This can be found
38   - # as the value of +_getTracker+ if you are using the new (ga.js) tracking
39   - # code, or the value of +_uacct+ if you are using the old (urchin.js)
40   - # tracking code.
41   - cattr_accessor :tracker_id
42   -
43   - @@domain_name = nil
44   - ##
45   - # :singleton-method:
46   - # Specify a different domain name from the default. You'll want to use
47   - # this if you have several subdomains that you want to combine into
48   - # one report. See the Google Analytics documentation for more
49   - # information.
50   - cattr_accessor :domain_name
51   -
52   - @@legacy_mode = false
53   - ##
54   - # :singleton-method:
55   - # Specify whether the legacy Google Analytics code should be used. By
56   - # default, the new Google Analytics code is used.
57   - cattr_accessor :legacy_mode
58   -
59   - @@analytics_url = 'http://www.google-analytics.com/urchin.js'
60   - ##
61   - # :singleton-method:
62   - # The URL that analytics information is sent to. This defaults to the
63   - # standard Google Analytics URL, and you're unlikely to need to change it.
64   - # This has no effect unless you're in legacy mode.
65   - cattr_accessor :analytics_url
66   -
67   - @@analytics_ssl_url = 'https://ssl.google-analytics.com/urchin.js'
68   - ##
69   - # :singleton-method:
70   - # The URL that analytics information is sent to when using SSL. This defaults to the
71   - # standard Google Analytics URL, and you're unlikely to need to change it.
72   - # This has no effect unless you're in legacy mode.
73   - cattr_accessor :analytics_ssl_url
74   -
75   - @@environments = ['production']
76   - ##
77   - # :singleton-method:
78   - # The environments in which to enable the Google Analytics code. Defaults
79   - # to 'production' only. Supply an array of environment names to change this.
80   - cattr_accessor :environments
81   -
82   - @@formats = [:html, :all]
83   - ##
84   - # :singleton-method:
85   - # The request formats where tracking code should be added. Defaults to +[:html, :all]+. The entry for
86   - # +:all+ is necessary to make Google recognize that tracking is installed on a
87   - # site; it is not the same as responding to all requests. Supply an array
88   - # of formats to change this.
89   - cattr_accessor :formats
90   -
91   - @@defer_load = true
92   - ##
93   - # :singleton-method:
94   - # Set this to true (the default) if you want to load the Analytics javascript at
95   - # the bottom of page. Set this to false if you want to load the Analytics
96   - # javascript at the top of the page. The page will render faster if you set this to
97   - # true, but that will break the linking functions in Rubaidh::GoogleAnalyticsViewHelper.
98   - cattr_accessor :defer_load
99   -
100   - @@local_javascript = false
101   - ##
102   - # :singleton-method:
103   - # Set this to true to use a local copy of the ga.js (or urchin.js) file.
104   - # This gives you the added benefit of serving the JS directly from your
105   - # server, which in case of a big geographical difference between your server
106   - # and Google's can speed things up for your visitors. Use the
107   - # 'google_analytics:update' rake task to update the local JS copies.
108   - cattr_accessor :local_javascript
109   -
110   - ##
111   - # :singleton-method:
112   - # Set this to override the initialized domain name for a single render. Useful
113   - # when you're serving to multiple hosts from a single codebase. Typically you'd
114   - # set up a before filter in the appropriate controller:
115   - # before_filter :override_domain_name
116   - # def override_domain_name
117   - # Rubaidh::GoogleAnalytics.override_domain_name = 'foo.com'
118   - # end
119   - cattr_accessor :override_domain_name
120   -
121   - ##
122   - # :singleton-method:
123   - # Set this to override the initialized tracker ID for a single render. Useful
124   - # when you're serving to multiple hosts from a single codebase. Typically you'd
125   - # set up a before filter in the appropriate controller:
126   - # before_filter :override_tracker_id
127   - # def override_tracker_id
128   - # Rubaidh::GoogleAnalytics.override_tracker_id = 'UA-123456-7'
129   - # end
130   - cattr_accessor :override_tracker_id
131   -
132   - ##
133   - # :singleton-method:
134   - # Set this to override the automatically generated path to the page in the
135   - # Google Analytics reports for a single render. Typically you'd set this up on an
136   - # action-by-action basis:
137   - # def show
138   - # Rubaidh::GoogleAnalytics.override_trackpageview = "path_to_report"
139   - # ...
140   - cattr_accessor :override_trackpageview
141   -
142   - # Return true if the Google Analytics system is enabled and configured
143   - # correctly for the specified format
144   - def self.enabled?(format)
145   - raise Rubaidh::GoogleAnalyticsConfigurationError if tracker_id.blank? || analytics_url.blank?
146   - environments.include?(RAILS_ENV) && formats.include?(format.to_sym)
147   - end
148   -
149   - # Construct the javascript code to be inserted on the calling page. The +ssl+
150   - # parameter can be used to force the SSL version of the code in legacy mode only.
151   - def self.google_analytics_code(ssl = false)
152   - return legacy_google_analytics_code(ssl) if legacy_mode
153   -
154   - extra_code = domain_name.blank? ? nil : "pageTracker._setDomainName(\"#{domain_name}\");"
155   - if !override_domain_name.blank?
156   - extra_code = "pageTracker._setDomainName(\"#{override_domain_name}\");"
157   - self.override_domain_name = nil
158   - end
159   -
160   - code = if local_javascript
161   - <<-HTML
162   - <script src="#{LocalAssetTagHelper.new.javascript_path( 'ga.js' )}" type="text/javascript">
163   - </script>
164   - HTML
165   - else
166   - <<-HTML
167   - <script type="text/javascript">
168   - var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
169   - document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
170   - </script>
171   - HTML
172   - end
173   -
174   - code << <<-HTML
175   - <script type="text/javascript">
176   - <!--//--><![CDATA[//><!--
177   - var pageTracker = _gat._getTracker('#{request_tracker_id}');
178   - #{extra_code}
179   - pageTracker._initData();
180   - pageTracker._trackPageview(#{request_tracked_path});
181   - //--><!]]>
182   - </script>
183   - HTML
184   - end
185   -
186   - # Construct the legacy version of the Google Analytics code. The +ssl+
187   - # parameter specifies whether or not to return the SSL version of the code.
188   - def self.legacy_google_analytics_code(ssl = false)
189   - extra_code = domain_name.blank? ? nil : "_udn = \"#{domain_name}\";"
190   - if !override_domain_name.blank?
191   - extra_code = "_udn = \"#{override_domain_name}\";"
192   - self.override_domain_name = nil
193   - end
194   -
195   - url = legacy_analytics_js_url(ssl)
196   -
197   - code = <<-HTML
198   - <script src="#{url}" type="text/javascript">
199   - </script>
200   - <script type="text/javascript">
201   - _uacct = "#{request_tracker_id}";
202   - #{extra_code}
203   - urchinTracker(#{request_tracked_path});
204   - </script>
205   - HTML
206   - end
207   -
208   - # Generate the correct URL for the legacy Analytics JS file
209   - def self.legacy_analytics_js_url(ssl = false)
210   - if local_javascript
211   - LocalAssetTagHelper.new.javascript_path( 'urchin.js' )
212   - else
213   - ssl ? analytics_ssl_url : analytics_url
214   - end
215   - end
216   -
217   - # Determine the tracker ID for this request
218   - def self.request_tracker_id
219   - use_tracker_id = override_tracker_id.blank? ? tracker_id : override_tracker_id
220   - self.override_tracker_id = nil
221   - use_tracker_id
222   - end
223   -
224   - # Determine the path to report for this request
225   - def self.request_tracked_path
226   - use_tracked_path = override_trackpageview.blank? ? '' : "'#{override_trackpageview}'"
227   - self.override_trackpageview = nil
228   - use_tracked_path
229   - end
230   -
231   - end
232   -
233   - class LocalAssetTagHelper # :nodoc:
234   - # For helping with local javascripts
235   - include ActionView::Helpers::AssetTagHelper
236   - end
237   -end
vendor/gems/rubaidh-google_analytics-1.1.4/lib/rubaidh/view_helpers.rb
... ... @@ -1,67 +0,0 @@
1   -module Rubaidh
2   - # Collection of methods similar to the ones in ActionView::Helpers::UrlHelper,
3   - # with the addition of outbound link tracking. See the Google Analytics help
4   - # at http://www.google.com/support/googleanalytics/bin/answer.py?answer=55527
5   - # for more information on outbound link tracking.
6   - module GoogleAnalyticsViewHelper
7   - # Creates a link tag of the given +name+ using a URL created by the set of +options+,
8   - # with outbound link tracking under +track_path+ in Google Analytics. The +html_options+
9   - # will accept a hash of attributes for the link tag.
10   - def link_to_tracked(name, track_path = "/", options = {}, html_options = {})
11   - raise AnalyticsError.new("You must set Rubaidh::GoogleAnalytics.defer_load = false to use outbound link tracking") if GoogleAnalytics.defer_load == true
12   - html_options.merge!({:onclick => tracking_call(track_path)})
13   - link_to name, options, html_options
14   - end
15   -
16   - # Creates a link tag of the given +name+ using a URL created by the set of +options+
17   - # if +condition+ is true, with outbound link tracking under +track_path+ in Google Analytics.
18   - # The +html_options+ will accept a hash of attributes for the link tag.
19   - def link_to_tracked_if(condition, name, track_path = "/", options = {}, html_options = {}, &block)
20   - raise AnalyticsError.new("You must set Rubaidh::GoogleAnalytics.defer_load = false to use outbound link tracking") if GoogleAnalytics.defer_load == true
21   - html_options.merge!({:onclick => tracking_call(track_path)})
22   - link_to_unless !condition, name, options, html_options, &block
23   - end
24   -
25   - # Creates a link tag of the given +name+ using a URL created by the set of +options+
26   - # unless +condition+ is true, with outbound link tracking under +track_path+ in Google Analytics.
27   - # The +html_options+ will accept a hash of attributes for the link tag.
28   - def link_to_tracked_unless(condition, name, track_path = "/", options = {}, html_options = {}, &block)
29   - raise AnalyticsError.new("You must set Rubaidh::GoogleAnalytics.defer_load = false to use outbound link tracking") if GoogleAnalytics.defer_load == true
30   - html_options.merge!({:onclick => tracking_call(track_path)})
31   - link_to_unless condition, name, options, html_options, &block
32   - end
33   -
34   - # Creates a link tag of the given +name+ using a URL created by the set of +options+
35   - # unless the current request URI is the same as the link's, with outbound link tracking
36   - # under +track_path+ in Google Analytics. If the request URI is the same as the link
37   - # URI, only the name is returned, or the block is yielded, if one exists.
38   - # The +html_options+ will accept a hash of attributes for the link tag.
39   - def link_to_tracked_unless_current(name, track_path = "/", options = {}, html_options = {}, &block)
40   - raise AnalyticsError.new("You must set Rubaidh::GoogleAnalytics.defer_load = false to use outbound link tracking") if GoogleAnalytics.defer_load == true
41   - html_options.merge!({:onclick =>tracking_call(track_path)})
42   - link_to_unless current_page?(options), name, options, html_options, &block
43   - end
44   -
45   -private
46   -
47   - def tracking_call(track_path)
48   - if GoogleAnalytics.legacy_mode
49   - "javascript:urchinTracker('#{track_path}');"
50   - else
51   - "javascript:pageTracker._trackPageview('#{track_path}');"
52   - end
53   - end
54   -
55   - end
56   -
57   - # Error raised by tracking methods if Rubaidh::GoogleAnalytics.defer_load is not configured
58   - # properly to enable tracking.
59   - class AnalyticsError < StandardError
60   - attr_reader :message
61   -
62   - def initialize(message)
63   - @message = message
64   - end
65   - end
66   -end
67   -
vendor/gems/rubaidh-google_analytics-1.1.4/rails/init.rb
... ... @@ -1,5 +0,0 @@
1   -require 'rubaidh/google_analytics'
2   -require 'rubaidh/view_helpers'
3   -ActionController::Base.send :include, Rubaidh::GoogleAnalyticsMixin
4   -ActionController::Base.send :after_filter, :add_google_analytics_code
5   -ActionView::Base.send :include, Rubaidh::GoogleAnalyticsViewHelper
6 0 \ No newline at end of file
vendor/gems/rubaidh-google_analytics-1.1.4/tasks/google_analytics.rake
... ... @@ -1,62 +0,0 @@
1   -namespace :google_analytics do
2   -
3   - desc "Update the local copy of the Analytics JS"
4   - task :update => :environment do
5   - file = Rubaidh::GoogleAnalytics.legacy_mode ? 'urchin.js' : 'ga.js'
6   - File.open( File.join( RAILS_ROOT, 'public', 'javascripts', file ), 'w+' ) do |f|
7   - res = Net::HTTP.get_response( 'www.google-analytics.com', '/' + file )
8   - f.write( res.plain_body )
9   - end
10   - end
11   -end
12   -
13   -# Intended to extend the Net::HTTP response object
14   -# and adds support for decoding gzip and deflate encoded pages
15   -#
16   -# Author: Jason Stirk <http://griffin.oobleyboo.com>
17   -# Home: http://griffin.oobleyboo.com/projects/http_encoding_helper
18   -# Created: 5 September 2007
19   -# Last Updated: 23 November 2007
20   -#
21   -# Usage:
22   -#
23   -# require 'net/http'
24   -# require 'http_encoding_helper'
25   -# headers={'Accept-Encoding' => 'gzip, deflate' }
26   -# http = Net::HTTP.new('griffin.oobleyboo.com', 80)
27   -# http.start do |h|
28   -# request = Net::HTTP::Get.new('/', headers)
29   -# response = http.request(request)
30   -# content=response.plain_body # Method from our library
31   -# puts "Transferred: #{response.body.length} bytes"
32   -# puts "Compression: #{response['content-encoding']}"
33   -# puts "Extracted: #{response.plain_body.length} bytes"
34   -# end
35   -#
36   -
37   -require 'net/http'
38   -require 'zlib'
39   -require 'stringio'
40   -
41   -class Net::HTTPResponse
42   - # Return the uncompressed content
43   - def plain_body
44   - encoding=self['content-encoding']
45   - content=nil
46   - if encoding then
47   - case encoding
48   - when 'gzip'
49   - i=Zlib::GzipReader.new(StringIO.new(self.body))
50   - content=i.read
51   - when 'deflate'
52   - i=Zlib::Inflate.new
53   - content=i.inflate(self.body)
54   - else
55   - raise "Unknown encoding - #{encoding}"
56   - end
57   - else
58   - content=self.body
59   - end
60   - return content
61   - end
62   -end
63 0 \ No newline at end of file
vendor/gems/rubaidh-google_analytics-1.1.4/test/google_analytics_test.rb
... ... @@ -1,182 +0,0 @@
1   -require File.dirname(__FILE__) + '/test_helper.rb'
2   -require 'test/unit'
3   -require 'rubygems'
4   -require 'mocha'
5   -RAILS_ENV = 'test'
6   -
7   -class TestMixin
8   - class MockRequest
9   - attr_accessor :format
10   - end
11   - class MockResponse
12   - attr_accessor :body
13   - end
14   -
15   - include Rubaidh::GoogleAnalyticsMixin
16   - attr_accessor :request, :response
17   -
18   - def initialize
19   - self.request = MockRequest.new
20   - self.response = MockResponse.new
21   - end
22   -
23   - # override the mixin's method
24   - def google_analytics_code
25   - "Google Code"
26   - end
27   -end
28   -
29   -
30   -class GoogleAnalyticsTest < Test::Unit::TestCase
31   - def setup
32   - @ga = Rubaidh::GoogleAnalytics.new
33   - @ga.tracker_id = "the tracker id"
34   - end
35   -
36   - def test_createable
37   - assert_not_nil(@ga)
38   - end
39   -
40   - def test_domain_name_defaults_to_nil
41   - assert_nil(@ga.domain_name)
42   - end
43   -
44   - def test_legacy_mode_defaults_to_false
45   - assert_equal(false, @ga.legacy_mode)
46   - end
47   -
48   - def test_default_analytics_url
49   - assert_equal("http://www.google-analytics.com/urchin.js", @ga.analytics_url)
50   - end
51   -
52   - def test_default_analytics_ssl_url
53   - assert_equal('https://ssl.google-analytics.com/urchin.js', @ga.analytics_ssl_url)
54   - end
55   -
56   - def test_default_environments
57   - assert_equal(false, @ga.environments.include?('test'))
58   - assert_equal(false, @ga.environments.include?('development'))
59   - assert_equal(true, @ga.environments.include?('production'))
60   - end
61   -
62   - def test_default_formats
63   - assert_equal(false, @ga.formats.include?(:xml))
64   - assert_equal(true, @ga.formats.include?(:html))
65   - end
66   -
67   - def test_defer_load_defaults_to_true
68   - assert_equal(true, @ga.defer_load)
69   - end
70   -
71   - def test_local_javascript_defaults_to_false
72   - assert_equal(false, @ga.local_javascript)
73   - end
74   -
75   - # test self.enabled
76   - def test_enabled_requires_tracker_id
77   - Rubaidh::GoogleAnalytics.stubs(:tracker_id).returns(nil)
78   - assert_raise(Rubaidh::GoogleAnalyticsConfigurationError) { Rubaidh::GoogleAnalytics.enabled?(:html) }
79   - end
80   -
81   - def test_enabled_requires_analytics_url
82   - Rubaidh::GoogleAnalytics.stubs(:analytics_url).returns(nil)
83   - assert_raise(Rubaidh::GoogleAnalyticsConfigurationError) { Rubaidh::GoogleAnalytics.enabled?(:html) }
84   - end
85   -
86   - def test_enabled_returns_false_if_current_environment_not_enabled
87   - Rubaidh::GoogleAnalytics.stubs(:environments).returns(['production'])
88   - assert_equal(false, Rubaidh::GoogleAnalytics.enabled?(:html))
89   - end
90   -
91   - def test_enabled_with_default_format
92   - Rubaidh::GoogleAnalytics.stubs(:environments).returns(['test'])
93   - assert_equal(true, Rubaidh::GoogleAnalytics.enabled?(:html))
94   - end
95   -
96   - def test_enabled_with_not_included_format
97   - Rubaidh::GoogleAnalytics.stubs(:environments).returns(['test'])
98   - assert_equal(false, Rubaidh::GoogleAnalytics.enabled?(:xml))
99   - end
100   -
101   - def test_enabled_with_added_format
102   - Rubaidh::GoogleAnalytics.stubs(:environments).returns(['test'])
103   - Rubaidh::GoogleAnalytics.stubs(:formats).returns([:xml])
104   - assert_equal(true, Rubaidh::GoogleAnalytics.enabled?(:xml))
105   - end
106   -
107   - # test request_tracker_id
108   - def test_request_tracker_id_without_override
109   - Rubaidh::GoogleAnalytics.stubs(:tracker_id).returns("1234")
110   - assert_equal("1234", Rubaidh::GoogleAnalytics.request_tracker_id)
111   - end
112   -
113   - def test_request_tracker_id_with_override
114   - Rubaidh::GoogleAnalytics.stubs(:tracker_id).returns("1234")
115   - Rubaidh::GoogleAnalytics.override_tracker_id = "4567"
116   - assert_equal("4567", Rubaidh::GoogleAnalytics.request_tracker_id)
117   - end
118   -
119   - def test_request_tracker_id_resets_override
120   - Rubaidh::GoogleAnalytics.override_tracker_id = "4567"
121   - Rubaidh::GoogleAnalytics.stubs(:tracker_id).returns("1234")
122   - foo = Rubaidh::GoogleAnalytics.request_tracker_id
123   - assert_nil(Rubaidh::GoogleAnalytics.override_tracker_id)
124   - end
125   -
126   - # test request_tracked_path
127   - def test_request_tracked_path_without_override
128   - assert_equal('', Rubaidh::GoogleAnalytics.request_tracked_path)
129   - end
130   -
131   - def test_request_tracked_path_with_override
132   - Rubaidh::GoogleAnalytics.override_trackpageview = "/my/path"
133   - assert_equal("'/my/path'", Rubaidh::GoogleAnalytics.request_tracked_path)
134   - end
135   -
136   - def test_request_tracked_path_resets_override
137   - Rubaidh::GoogleAnalytics.override_trackpageview = "/my/path"
138   - foo = Rubaidh::GoogleAnalytics.request_tracked_path
139   - assert_nil(Rubaidh::GoogleAnalytics.override_trackpageview)
140   - end
141   -
142   - # Test the before_filter method does what we expect by subsituting the body tags and inserting
143   - # some google code for us automagically.
144   - def test_add_google_analytics_code
145   - # setup our test mixin
146   - mixin = TestMixin.new
147   -
148   - # bog standard body tag
149   - Rubaidh::GoogleAnalytics.defer_load = false
150   - mixin.response.body = "<body><p>some text</p></body>"
151   - mixin.add_google_analytics_code
152   - assert_equal mixin.response.body, '<body>Google Code<p>some text</p></body>'
153   -
154   - Rubaidh::GoogleAnalytics.defer_load = true
155   - mixin.response.body = "<body><p>some text</p></body>"
156   - mixin.add_google_analytics_code
157   - assert_equal mixin.response.body, '<body><p>some text</p>Google Code</body>'
158   -
159   - # body tag upper cased (ignoring this is semantically incorrect)
160   - Rubaidh::GoogleAnalytics.defer_load = false
161   - mixin.response.body = "<BODY><p>some text</p></BODY>"
162   - mixin.add_google_analytics_code
163   - assert_equal mixin.response.body, '<BODY>Google Code<p>some text</p></BODY>'
164   -
165   - Rubaidh::GoogleAnalytics.defer_load = true
166   - mixin.response.body = "<BODY><p>some text</p></BODY>"
167   - mixin.add_google_analytics_code
168   - assert_equal mixin.response.body, '<BODY><p>some text</p>Google Code</body>'
169   -
170   - # body tag has additional attributes
171   - Rubaidh::GoogleAnalytics.defer_load = false
172   - mixin.response.body = '<body style="background-color:red"><p>some text</p></body>'
173   - mixin.add_google_analytics_code
174   - assert_equal mixin.response.body, '<body style="background-color:red">Google Code<p>some text</p></body>'
175   -
176   - Rubaidh::GoogleAnalytics.defer_load = true
177   - mixin.response.body = '<body style="background-color:red"><p>some text</p></body>'
178   - mixin.add_google_analytics_code
179   - assert_equal mixin.response.body, '<body style="background-color:red"><p>some text</p>Google Code</body>'
180   - end
181   -
182   -end
vendor/gems/rubaidh-google_analytics-1.1.4/test/test_helper.rb
... ... @@ -1,8 +0,0 @@
1   -ENV['RAILS_ENV'] = 'test'
2   -
3   -require 'rubygems'
4   -require 'test/unit'
5   -
6   -require File.expand_path(File.dirname(__FILE__) + '/../lib/rubaidh/google_analytics.rb')
7   -require File.expand_path(File.dirname(__FILE__) + '/../lib/rubaidh/view_helpers.rb')
8   -
vendor/gems/rubaidh-google_analytics-1.1.4/test/view_helpers_test.rb
... ... @@ -1,56 +0,0 @@
1   -require File.dirname(__FILE__) + '/test_helper.rb'
2   -include Rubaidh::GoogleAnalyticsViewHelper
3   -include ActionView::Helpers::UrlHelper
4   -include ActionView::Helpers::TagHelper
5   -
6   -class ViewHelpersTest < Test::Unit::TestCase
7   -
8   - def setup
9   - Rubaidh::GoogleAnalytics.defer_load = false
10   - end
11   -
12   - def test_link_to_tracked_should_return_a_tracked_link
13   - assert_equal "<a href=\"http://www.example.com\" onclick=\"javascript:pageTracker._trackPageview('/sites/linked');\">Link</a>", link_to_tracked('Link', '/sites/linked', "http://www.example.com" )
14   - end
15   -
16   - def test_link_to_tracked_with_legacy_should_return_a_tracked_link
17   - Rubaidh::GoogleAnalytics.legacy_mode = true
18   - assert_equal "<a href=\"http://www.example.com\" onclick=\"javascript:urchinTracker('/sites/linked');\">Link</a>", link_to_tracked('Link', '/sites/linked', "http://www.example.com" )
19   - end
20   -
21   - def test_link_to_tracked_should_error_if_defer_load
22   - Rubaidh::GoogleAnalytics.defer_load = true
23   - assert_raise(Rubaidh::AnalyticsError) { link_to_tracked('Link', '/sites/linked', "http://www.example.com" ) }
24   - end
25   -
26   - def test_link_to_tracked_if_with_true_should_return_a_tracked_link
27   - assert_equal "<a href=\"http://www.example.com\" onclick=\"javascript:pageTracker._trackPageview('/sites/linked');\">Link</a>", link_to_tracked_if(true, 'Link', '/sites/linked', "http://www.example.com" )
28   - end
29   -
30   - def test_link_to_tracked_if_with_false_should_return_unlinked_text
31   - assert_equal "Link", link_to_tracked_if(false, 'Link', '/sites/linked', "http://www.example.com" )
32   - end
33   -
34   - def test_link_to_tracked_if_should_error_if_defer_load
35   - Rubaidh::GoogleAnalytics.defer_load = true
36   - assert_raise(Rubaidh::AnalyticsError) { link_to_tracked_if(false, 'Link', '/sites/linked', "http://www.example.com" ) }
37   - end
38   -
39   - def test_link_to_tracked_unless_with_false_should_return_a_tracked_link
40   - assert_equal "<a href=\"http://www.example.com\" onclick=\"javascript:pageTracker._trackPageview('/sites/linked');\">Link</a>", link_to_tracked_unless(false, 'Link', '/sites/linked', "http://www.example.com" )
41   - end
42   -
43   - def test_link_to_tracked_unless_with_true_should_return_unlinked_text
44   - assert_equal "Link", link_to_tracked_unless(true, 'Link', '/sites/linked', "http://www.example.com" )
45   - end
46   -
47   - def test_link_to_tracked_unless_should_error_if_defer_load
48   - Rubaidh::GoogleAnalytics.defer_load = true
49   - assert_raise(Rubaidh::AnalyticsError) { link_to_tracked_unless(false, 'Link', '/sites/linked', "http://www.example.com" ) }
50   - end
51   -
52   - def test_link_to_tracked_unless_current
53   - #postponed
54   - end
55   -
56   -end