module MasterView module Directives #outputs a block around the text tags, if left bracket count is higher than right #assume that the end is a right bracket otherwise use end class Block < MasterView::DirectiveBase def priority DirectivePriorities::MediumHigh end def stag(directive_call_stack) count_left_brackets = attr_value.scan( /\{/ ).size count_right_brackets = attr_value.scan( /\}/ ).size @end_block = (count_left_brackets > count_right_brackets) ? '}' : 'end' ret = [] ret << erb(attr_value) ret << directive_call_stack.render end def etag(directive_call_stack) ret = [] ret << directive_call_stack.render ret << erb(@end_block) end end end end