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

enable to use other embedded expression pattern (default is ’\[= =\]’).

notice! this is an experimental. spec may change in the future.

ex.

  input = <<END
  <% for item in list %>
    <%= item %> : <%== item %>
    [= item =] : [== item =]
  <% end %>
  END

  class BiPatternEruby
    include BiPatternEnhancer
  end
  eruby = BiPatternEruby.new(input, :bipattern=>'\[= =\]')
  list = ['<a>', 'b&b', '"c"']
  print eruby.result(binding())

  ## output
    <a> : &lt;a&gt;
    <a> : &lt;a&gt;
    b&b : b&amp;b
    b&b : b&amp;b
    "c" : &quot;c&quot;
    "c" : &quot;c&quot;

this is language independent.

Methods

add_text   new  

Public Class methods

[Source]

     # File lib/erubis/enhancer.rb, line 409
409:     def initialize(input, properties={})
410:       self.bipattern = properties[:bipattern]    # or '\$\{ \}'
411:       super
412:     end

Public Instance methods

[Source]

     # File lib/erubis/enhancer.rb, line 421
421:     def add_text(src, text)
422:       return unless text
423:       m = nil
424:       text.scan(@bipattern_regexp) do |txt, indicator, code|
425:         m = Regexp.last_match
426:         super(src, txt)
427:         add_expr(src, code, '=' + indicator)
428:       end
429:       #rest = $' || text                    # ruby1.8
430:       rest = m ? text[m.end(0)..-1] : text  # ruby1.9
431:       super(src, rest)
432:     end

[Validate]