Class: ERB::Compiler::TrimScanner
- Inherits:
-
Scanner
- Object
- Scanner
- ERB::Compiler::TrimScanner
- Defined in:
- lib/erb_safe_ext.rb
Instance Method Summary collapse
- #explicit_trim_line(line) ⇒ Object
- #is_erb_stag?(s) ⇒ Boolean
- #scan_line(line) ⇒ Object
- #trim_line1(line) ⇒ Object
- #trim_line2(line) ⇒ Object
Instance Method Details
#explicit_trim_line(line) ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/erb_safe_ext.rb', line 117 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) ⇒ Boolean
135 136 137 |
# File 'lib/erb_safe_ext.rb', line 135 def is_erb_stag?(s) ERB_STAG.member?(s) end |
#scan_line(line) ⇒ Object
75 76 77 78 79 80 81 82 |
# File 'lib/erb_safe_ext.rb', line 75 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) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/erb_safe_ext.rb', line 83 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) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/erb_safe_ext.rb', line 96 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 |