Module Erubis::SimplifyEnhancer
In: lib/erubis/enhancer.rb
Ejava EscapedEjava Engine Eperl Ephp OptimizedEruby Ec Ejavascript Escheme Eruby\n[lib/erubis/engine/eruby.rb\nlib/erubis/helpers/rails_helper.rb] PreprocessingEruby XmlEruby HeaderFooterEruby PrintEnabledEruby StdoutEruby StringBufferEruby BiPatternEruby InterpolationEruby PercentLineEruby PrintOutSimplifiedEruby NoTextEruby ErboutEruby StringIOEruby ArrayEruby PrintOutEruby SimplifiedEruby EscapedEruby DeleteIndentEruby StdoutSimplifiedEruby NoCodeEruby ArrayBufferEruby PreprocessingEruby FastEruby\n[lib/erubis/engine/eruby.rb\nlib/erubis/helpers/rails_helper.rb] EscapedEphp EscapedEc OptimizedXmlEruby EscapedEperl EscapedEjavascript EscapedEscheme Enumerable Context ErubisError NotSupportedError CommandOptionError StandardError RubyEvaluator Eruby RubyGenerator PI::Engine Ejava Eperl Ec Ejavascript Ephp Escheme JavaGenerator PerlGenerator Evaluator Engine PI::Converter Generator CGenerator JavascriptGenerator PhpGenerator SchemeGenerator Basic::Converter Main TinyEruby Engine TinyEruby lib/erubis/engine/escheme.rb lib/erubis/engine/ec.rb lib/erubis/engine/eperl.rb lib/erubis/engine/eruby.rb lib/erubis/engine/ephp.rb lib/erubis/preprocessing.rb lib/erubis/error.rb lib/erubis/engine/ejava.rb lib/erubis/engine/ejavascript.rb lib/erubis/context.rb lib/erubis/engine/optimized.rb lib/erubis/main.rb lib/erubis/engine/enhanced.rb lib/erubis/tiny.rb lib/erubis/engine.rb NoCodeEnhancer ArrayBufferEnhancer StringBufferEnhancer Generator SchemeGenerator OptimizedGenerator lib/erubis/engine/escheme.rb lib/erubis/engine/ec.rb lib/erubis/engine/eperl.rb lib/erubis/engine/eruby.rb lib/erubis/engine/ephp.rb lib/erubis/engine/ejava.rb lib/erubis/engine/ejavascript.rb lib/erubis/tiny.rb lib/erubis/engine.rb Converter PI Converter SimplifyEnhancer StdoutEnhancer HeaderFooterEnhancer RubyGenerator CGenerator PhpGenerator lib/erubis/engine.rb Converter Basic XmlHelper lib/erubis/helpers/rails_helper.rb TemplateConverter RailsHelper RailsFormHelper Helpers BiPatternEnhancer PrintEnabledEnhancer PerlGenerator JavascriptGenerator PreprocessingHelper Evaluator PercentLineEnhancer NoTextEnhancer ErboutEnhancer PrintOutEnhancer EscapeEnhancer JavaGenerator DeleteIndentEnhancer StringIOEnhancer ArrayEnhancer InterpolationEnhancer RubyEvaluator Erubis dot/m_23_0.png

get convert faster, but spaces around ’<%…%>’ are not trimmed.

this is language-independent.

Methods

convert  

Constants

SIMPLE_REGEXP = /<%(=+|\#)?(.*?)-?%>/m   DEFAULT_REGEXP = /(^[ \t]*)?<%(=+|\#)?(.*?)-?%>([ \t]*\r?\n)?/m

Public Instance methods

[Source]

     # File lib/erubis/enhancer.rb, line 343
343:     def convert(input)
344:       src = ""
345:       add_preamble(src)
346:       #regexp = pattern_regexp(@pattern)
347:       pos = 0
348:       input.scan(SIMPLE_REGEXP) do |indicator, code|
349:         match = Regexp.last_match
350:         index = match.begin(0)
351:         text  = input[pos, index - pos]
352:         pos   = match.end(0)
353:         add_text(src, text)
354:         if !indicator              # <% %>
355:           add_stmt(src, code)
356:         elsif indicator[0] == ?\#  # <%# %>
357:           n = code.count("\n")
358:           add_stmt(src, "\n" * n)
359:         else                       # <%= %>
360:           add_expr(src, code, indicator)
361:         end
362:       end
363:       #rest = $' || input                      # ruby1.8
364:       rest = pos == 0 ? input : input[pos..-1]  # ruby1.9
365:       add_text(src, rest)
366:       add_postamble(src)
367:       return src
368:     end

[Validate]