Class: Rack::Tracker::GoogleTagManager
- Defined in:
- lib/rack/tracker/google_tag_manager/google_tag_manager.rb
Defined Under Namespace
Classes: Push
Constant Summary
Constants included from JavaScriptHelper
JavaScriptHelper::JS_ESCAPE_MAP
Instance Attribute Summary
Attributes inherited from Handler
Instance Method Summary collapse
Methods inherited from Handler
#dnt_header_opt_out?, #events, #handler_name, #initialize, process_track, #render, track, #tracker_options, #write_event
Methods included from JavaScriptHelper
Constructor Details
This class inherits a constructor from Rack::Tracker::Handler
Instance Method Details
#container ⇒ Object
22 23 24 |
# File 'lib/rack/tracker/google_tag_manager/google_tag_manager.rb', line 22 def container [:container].respond_to?(:call) ? [:container].call(env) : [:container] end |
#inject(response) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rack/tracker/google_tag_manager/google_tag_manager.rb', line 9 def inject(response) # Sub! is enough, in well formed html there's only one head or body tag. # Block syntax need to be used, otherwise backslashes in input will mess the output. # @see http://stackoverflow.com/a/4149087/518204 and https://github.com/railslove/rack-tracker/issues/50 response.sub! %r{<head.*?>} do |m| m.to_s << self.render_head end response.sub! %r{<body.*?>} do |m| m.to_s << self.render_body end response end |
#render_body ⇒ Object
30 31 32 |
# File 'lib/rack/tracker/google_tag_manager/google_tag_manager.rb', line 30 def render_body Tilt.new( File.join( File.dirname(__FILE__), 'template', 'google_tag_manager_body.erb') ).render(self) end |
#render_head ⇒ Object
26 27 28 |
# File 'lib/rack/tracker/google_tag_manager/google_tag_manager.rb', line 26 def render_head Tilt.new( File.join( File.dirname(__FILE__), 'template', 'google_tag_manager_head.erb') ).render(self) end |