class Slimi::Filters::EndInserter
Append missing ‘end` line to embedded Ruby code in control block.
Public Instance Methods
on_multi(*expressions)
click to toggle source
@param [Array<Array>] expressions
# File lib/slimi/filters/end_inserter.rb, line 8 def on_multi(*expressions) result = [:multi] prev_indent = false expressions.each do |source| expression = Expression.new(source) if expression.control? raise ::Temple::FilterError, 'Explicit end statements are forbidden.' if expression.end? result << code_end if prev_indent && !expression.else? prev_indent = expression.if? elsif !expression.newline? && prev_indent result << code_end prev_indent = false end result << compile(source) end result << code_end if prev_indent result end
Private Instance Methods
code_end()
click to toggle source
@return [Array]
# File lib/slimi/filters/end_inserter.rb, line 34 def code_end [:code, 'end'] end