Module: Erubis::PrefixedLineEnhancer
- Included in:
- PercentLineEnhancer, PrefixedLineEruby
- Defined in:
- lib/erubis/enhancer.rb
Overview
regards lines starting with ‘^[ t]*%’ as program code
in addition you can specify prefix character (default ‘%’)
this is language-independent.
Class Method Summary collapse
-
.desc ⇒ Object
:nodoc:.
Instance Method Summary collapse
Class Method Details
.desc ⇒ Object
:nodoc:
445 446 447 |
# File 'lib/erubis/enhancer.rb', line 445 def self.desc # :nodoc: "regard lines matched to '^[ \t]*%' as program code" end |
Instance Method Details
#add_text(src, text) ⇒ Object
454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 |
# File 'lib/erubis/enhancer.rb', line 454 def add_text(src, text) unless @prefixrexp @prefixchar ||= '%' @prefixrexp = Regexp.compile("^([ \\t]*)\\#{@prefixchar}(.*?\\r?\\n)") end pos = 0 text2 = '' text.scan(@prefixrexp) do space = $1 line = $2 space, line = '', $1 unless $2 match = Regexp.last_match len = match.begin(0) - pos str = text[pos, len] pos = match.end(0) if text2.empty? text2 = str else text2 << str end if line[0, 1] == @prefixchar text2 << space << line else super(src, text2) text2 = '' add_stmt(src, space + line) end end #rest = pos == 0 ? text : $' # ruby1.8 rest = pos == 0 ? text : text[pos..-1] # ruby1.9 unless text2.empty? text2 << rest if rest rest = text2 end super(src, rest) end |
#init_generator(properties = {}) ⇒ Object
449 450 451 452 |
# File 'lib/erubis/enhancer.rb', line 449 def init_generator(properties={}) super @prefixchar = properties[:prefixchar] end |