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