39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/slideshow/filters/text_filter.rb', line 39
def directives_percent_style( content )
directive_unparsed = 0
directive_expr = 0
directive_block_beg = 0
directive_block_end = 0
inside_block = 0
inside_helper = false
content2 = ""
content.each_line do |line|
if line =~ /^%([a-zA-Z][a-zA-Z0-9_]*)(.*)/
directive = $1.downcase
params = $2
logger.debug "processing %-directive: #{directive}"
if DIRECTIVES_UNPARSED.include?( directive )
directive_unparsed += 1
content2 << "<%= #{directive} '#{params ? params : ''}' %>"
elsif DIRECTIVES_EXPRS.include?( directive )
directive_expr += 1
content2 << "<%= #{directive} #{params ? erb_simple_params(directive,params) : ''} %>"
elsif inside_helper && directive == 'end'
inside_helper = false
directive_block_end += 1
content2 << "%>"
elsif inside_block > 0 && directive == 'end'
inside_block -= 1
directive_block_end += 1
content2 << "<% end %>"
elsif [ 'comment', 'comments', 'begin', 'end' ].include?( directive )
content2 << line
elsif [ 'helper', 'helpers' ].include?( directive )
inside_helper = true
directive_block_beg += 1
content2 << "<%"
else
inside_block += 1
directive_block_beg += 1
content2 << "<% #{directive} #{params ? erb_simple_params(directive,params) : ''} do %>"
end
else
content2 << line
end
end
puts " Preparing %-directives (" +
"#{directive_unparsed} #{DIRECTIVES_UNPARSED.join('/')} directives, " +
"#{directive_expr} #{DIRECTIVES_EXPRS.join('/')} expr-directives, " +
"#{directive_block_beg}/#{directive_block_end} block-directives)..."
content2
end
|