Module | Erubis::CGenerator |
In: |
lib/erubis/engine/ec.rb
|
# File lib/erubis/engine/ec.rb, line 73 73: def add_expr_debug(src, code) 74: code.strip! 75: s = nil 76: if code =~ /\A\".*?\"\s*,\s*(.*)/ 77: s = $1.gsub(/[%"]/, '\\\1') + '=' 78: end 79: src << @indent if src.empty? || src[-1] == ?\n 80: src << " fprintf(stderr, \"*** debug: #{s}\" #{code});" 81: end
# File lib/erubis/engine/ec.rb, line 68 68: def add_expr_escaped(src, code) 69: src << @indent if src.empty? || src[-1] == ?\n 70: src << ' ' << escaped_expr(code) << ';' 71: end
# File lib/erubis/engine/ec.rb, line 63 63: def add_expr_literal(src, code) 64: src << @indent if src.empty? || src[-1] == ?\n 65: src << " fprintf(#{@out}, " << code.strip << ');' 66: end
# File lib/erubis/engine/ec.rb, line 31 31: def add_preamble(src) 32: src << "#line 1 \"#{self.filename}\"\n" if self.filename 33: end
# File lib/erubis/engine/ec.rb, line 45 45: def add_text(src, text) 46: return if text.empty? 47: src << (src.empty? || src[-1] == ?\n ? @indent : ' ') 48: src << "fputs(" 49: i = 0 50: text.each_line do |line| 51: src << "\n" << @indent << ' ' if i > 0 52: i += 1 53: src << '"' << escape_text(line) << '"' 54: end 55: src << ", #{@out});" #<< (text[-1] == ?\n ? "\n" : "") 56: src << "\n" if text[-1] == ?\n 57: end
# File lib/erubis/engine/ec.rb, line 35 35: def escape_text(text) 36: @@table_ ||= { "\r"=>"\\r", "\n"=>"\\n", "\t"=>"\\t", '"'=>'\\"', "\\"=>"\\\\" } 37: text.gsub!(/[\r\n\t"\\]/) { |m| @@table_[m] } 38: return text 39: end
# File lib/erubis/engine/ec.rb, line 41 41: def escaped_expr(code) 42: return "#{@escapefunc}(#{code.strip}, #{@out})" 43: end