diff --git a/lib/deface/applicator.rb b/lib/deface/applicator.rb index 4e7eb98..703919f 100644 --- a/lib/deface/applicator.rb +++ b/lib/deface/applicator.rb @@ -48,8 +48,16 @@ def apply_overrides(source, overrides:, log: true) matches.each {|match| override.execute_action match } end end - +=begin + replace this line of (gem deface) source = doc.to_s + by source = source = CGI.unescapeHTML doc.to_s + because + doc.class = Nokogiri::HTML::DocumentFragment + and the methode to_s(of nokogiri) use escape_text. +=end + #source = doc.to_s + source = CGI.unescapeHTML doc.to_s Deface::Parser.undo_erb_markup!(source) diff --git a/spec/deface/applicator_spec.rb b/spec/deface/applicator_spec.rb index f794ffc..a19d65a 100644 --- a/spec/deface/applicator_spec.rb +++ b/spec/deface/applicator_spec.rb @@ -88,5 +88,14 @@ module Deface end end + describe "source containing a javascript tag" do + before { Deface::Override.new(:virtual_path => "posts/index", + :name => "Posts#index", + :remove => "p") } + let(:source) { "<%= javascript_tag do %>if (y > 0) {y = 0;}<% end %>" } + it "should return unmodified source" do + expect(Dummy.apply(source, { :virtual_path => "posts/index" })).to eq("<%= javascript_tag do %>if (y > 0) {y = 0;}<% end %>") + end + end end end