diff --git a/.gitignore b/.gitignore index a955cfa..52bf0af 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ test/tmp test/version_tmp tmp .DS_Store +.idea \ No newline at end of file diff --git a/lib/rack/tracker/google_tag_manager/google_tag_manager.rb b/lib/rack/tracker/google_tag_manager/google_tag_manager.rb index 2db9d2b..46a5821 100644 --- a/lib/rack/tracker/google_tag_manager/google_tag_manager.rb +++ b/lib/rack/tracker/google_tag_manager/google_tag_manager.rb @@ -10,13 +10,12 @@ 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{} do |m| + response_dup = response.sub %r{} do |m| m.to_s << self.render_head end - response.sub! %r{} do |m| + response_dup.sub %r{} do |m| m.to_s << self.render_body end - response end def container diff --git a/lib/rack/tracker/handler.rb b/lib/rack/tracker/handler.rb index 25c7788..c203791 100644 --- a/lib/rack/tracker/handler.rb +++ b/lib/rack/tracker/handler.rb @@ -46,10 +46,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{} do |m| + response.sub %r{} do |m| self.render << m.to_s end - response end def write_event(event)