Sha256: aba49d463b94822202db65147ed0d3c31ed0126e16c6142a6d88fe8f2510fd8e

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

module GoogleAnalytics
  class AsyncTrackingQueue
    def initialize
      @events = []
    end
    
    def <<(event)
      push(event)
    end

    def push(event, tracker_id = nil)
      @events << renderer_for_event(event, tracker_id)
    end

    def to_s
<<-JAVASCRIPT
<script type="text/javascript">
var _gaq = _gaq || [];
#{@events.map { |event| event.to_s }.join("\n")}
(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>
JAVASCRIPT
    end
    
    private
    
    def renderer_for_event(event, tracker_id)
      case event
      when Event then EventRenderer.new(event, tracker_id)
      when EventCollection then EventCollectionRenderer.new(event, tracker_id)
      end
    end
  end
end

# Alias for {GoogleAnalytics::AsyncTrackingQueue}
GAQ = GoogleAnalytics::AsyncTrackingQueue

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
google-analytics-rails-0.0.3 lib/google-analytics/async_tracking_queue.rb
google-analytics-rails-0.0.2 lib/google-analytics/async_tracking_queue.rb
google-analytics-rails-0.0.1 lib/google-analytics/async_tracking_queue.rb