class ERB::Compiler::TrimScanner
Public Instance Methods
explicit_trim_line(line) { |'<%'| ... }
click to toggle source
# File lib/erb_safe_ext.rb, line 116 def explicit_trim_line(line) line.scan(/(.*?)(^[ \t]*<%\-|<%\-|<%%|%%>|<%~|<%=|<%#|<%|-%>\n|-%>|%>|\z)/m) do |tokens| tokens.each do |token| next if token.empty? if @stag.nil? && /[ \t]*<%-/ =~ token yield('<%') elsif @stag && token == "-%>\n" yield('%>') yield(:cr) elsif @stag && token == '-%>' yield('%>') else yield(token) end end end end
is_erb_stag?(s)
click to toggle source
# File lib/erb_safe_ext.rb, line 134 def is_erb_stag?(s) ERB_STAG.member?(s) end
scan_line(line) { |token| ... }
click to toggle source
# File lib/erb_safe_ext.rb, line 74 def scan_line(line) line.scan(/(.*?)(<%%|%%>|<%~|<%=|<%#|<%|%>|\n|\z)/m) do |tokens| tokens.each do |token| next if token.empty? yield(token) end end end
trim_line1(line) { |'%>'| ... }
click to toggle source
# File lib/erb_safe_ext.rb, line 82 def trim_line1(line) line.scan(/(.*?)(<%%|%%>|<%~|<%=|<%#|<%|%>\n|%>|\n|\z)/m) do |tokens| tokens.each do |token| next if token.empty? if token == "%>\n" yield('%>') yield(:cr) else yield(token) end end end end
trim_line2(line) { |'%>'| ... }
click to toggle source
# File lib/erb_safe_ext.rb, line 95 def trim_line2(line) head = nil line.scan(/(.*?)(<%%|%%>|<%~|<%=|<%#|<%|%>\n|%>|\n|\z)/m) do |tokens| tokens.each do |token| next if token.empty? head = token unless head if token == "%>\n" yield('%>') if is_erb_stag?(head) yield(:cr) else yield("\n") end head = nil else yield(token) head = nil if token == "\n" end end end end