Module | Erubis::SchemeGenerator |
In: |
lib/erubis/engine/escheme.rb
|
# File lib/erubis/engine/escheme.rb, line 72 72: def add_expr_debug(src, code) 73: s = (code.strip! || code).gsub(/\"/, '\\"') 74: src << "(display \"*** debug: #{s}=\")(display #{code.strip})(display \"\\n\")" 75: end
# File lib/erubis/engine/escheme.rb, line 68 68: def add_expr_escaped(src, code) 69: add_expr_literal(src, escaped_expr(code)) 70: end
# File lib/erubis/engine/escheme.rb, line 63 63: def add_expr_literal(src, code) 64: code.strip! 65: src << "(#{@func} #{code})" 66: end
# File lib/erubis/engine/escheme.rb, line 77 77: def add_postamble(src) 78: return unless @func == '_add' 79: src << "\n" unless src[-1] == ?\n 80: src << " (reverse _buf))\n" 81: end
# File lib/erubis/engine/escheme.rb, line 29 29: def add_preamble(src) 30: return unless @func == '_add' 31: src << "(let ((_buf '())) " + \ 32: "(define (_add x) (set! _buf (cons x _buf))) " 33: #src << "(let* ((_buf '())" + # " (_add (lambda (x) (set! _buf (cons x _buf))))) " 34: end
# File lib/erubis/engine/escheme.rb, line 48 48: def add_text(src, text) 49: return if text.empty? 50: t = escape_text(text) 51: if t[-1] == ?\n 52: t[-1, 1] = '' 53: src << "(#{@func} \"" << t << "\\n\")\n" 54: else 55: src << "(#{@func} \"" << t << '")' 56: end 57: end
# File lib/erubis/engine/escheme.rb, line 37 37: def escape_text(text) 38: @table_ ||= { '"'=>'\\"', '\\'=>'\\\\' } 39: text.gsub!(/["\\]/) { |m| @table_[m] } 40: return text 41: end
# File lib/erubis/engine/escheme.rb, line 43 43: def escaped_expr(code) 44: code.strip! 45: return "(#{@escapefunc} #{code})" 46: end