Module: Erubis::RubyGenerator
- Includes:
- Generator, StringBufferEnhancer
- Defined in:
- lib/erubis_rails_helper/erubis/generator.rb
Overview
code generator for Ruby
Class Method Summary collapse
-
.supported_properties ⇒ Object
:nodoc:.
Instance Method Summary collapse
- #add_expr_debug(src, code) ⇒ Object
- #add_expr_escaped(src, code) ⇒ Object
- #add_expr_literal(src, code) ⇒ Object
- #add_stmt(src, code) ⇒ Object
-
#add_text(src, text) ⇒ Object
– def add_preamble(src) src << “_buf = [];” end ++.
- #escape_text(text) ⇒ Object
- #escaped_expr(code) ⇒ Object
- #init_generator(properties = {}) ⇒ Object
Class Method Details
.supported_properties ⇒ Object
:nodoc:
37 38 39 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 37 def self.supported_properties() # :nodoc: return [] end |
Instance Method Details
#add_expr_debug(src, code) ⇒ Object
76 77 78 79 80 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 76 def add_expr_debug(src, code) code.strip! s = (code.dump =~ /\A"(.*)"\z/) && $1 src << ' $stderr.puts("*** debug: ' << s << '=#{(' << code << ').inspect}");' end |
#add_expr_escaped(src, code) ⇒ Object
71 72 73 74 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 71 def add_expr_escaped(src, code) #src << ' _buf << ' << escaped_expr(code) << ';' src << " #{eoutvar} << " << escaped_expr(code) << ';' end |
#add_expr_literal(src, code) ⇒ Object
66 67 68 69 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 66 def add_expr_literal(src, code) #src << ' _buf << (' << code << ').to_s;' src << " #{eoutvar} << (" << code << ").to_s;" end |
#add_stmt(src, code) ⇒ Object
60 61 62 63 64 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 60 def add_stmt(src, code) #src << code << ';' src << code src << ';' unless code[-1] == ?\n end |
#add_text(src, text) ⇒ Object
– def add_preamble(src)
src << "_buf = [];"
end ++
55 56 57 58 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 55 def add_text(src, text) #src << " _buf << '" << escape_text(text) << "';" unless text.empty? src << " #{eoutvar} << '" << escape_text(text) << "';" unless text.empty? end |
#escape_text(text) ⇒ Object
41 42 43 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 41 def escape_text(text) text.gsub(/['\\]/, '\\\\\&') # "'" => "\\'", '\\' => '\\\\' end |
#escaped_expr(code) ⇒ Object
45 46 47 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 45 def escaped_expr(code) return "#{@escapefunc}(#{code})" end |
#init_generator(properties = {}) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/erubis_rails_helper/erubis/generator.rb', line 29 def init_generator(properties={}) super @escapefunc ||= "Erubis::XmlHelper.escape_xml" set_eoutvar(properties[:eoutvar] || '_buf') end |