Module Erubis::BiPatternEnhancer
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

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]