def process_lines(self, haml_lines): root = RootNode(**self.options_dict) line_iter = iter(haml_lines) haml_node=None for line_number, line in enumerate(line_iter): node_lines = line if not root.parent_of(HamlNode(line)).inside_filter_node(): if line.count('{') - line.count('}') == 1: start_multiline=line_number # For exception handling while line.count('{') - line.count('}') != -1: try: line = line_iter.next() except StopIteration: raise Exception('No closing brace found for multi-line HAML beginning at line %s' % (start_multiline+1)) node_lines += line # Blank lines if haml_node is not None and len(node_lines.strip()) == 0: haml_node.newlines += 1 else: haml_node = create_node(node_lines) if haml_node: root.add_node(haml_node) if self.options_dict and self.options_dict.get('debug_tree'): return root.debug_tree() else: return root.render()
def process_lines(self, haml_lines, options=None): root = RootNode() line_iter = iter(haml_lines) haml_node = None for line_number, line in enumerate(line_iter): node_lines = line if not root.parent_of(HamlNode(line)).inside_filter_node(): if line.count('{') - line.count('}') == 1: start_multiline = line_number # For exception handling while line.count('{') - line.count('}') != -1: try: line = line_iter.next() except StopIteration: raise Exception( 'No closing brace found for multi-line HAML beginning at line %s' % (start_multiline + 1)) node_lines += line # Blank lines if haml_node is not None and len(node_lines.strip()) == 0: haml_node.newlines += 1 else: haml_node = create_node(node_lines) if haml_node: root.add_node(haml_node) if options and options.debug_tree: return root.debug_tree() else: return root.render()
def process_lines(self, haml_lines): root = RootNode() line_iter = iter(haml_lines) haml_node = None for line_number, line in enumerate(line_iter): node_lines = line # Check for multi-line string when parent is not a FilterNode if not isinstance(root.parent(HamlNode(line)), FilterNode): if line.count('{') - line.count('}') == 1: start_multiline = line_number # For exception handling while line.count('{') - line.count('}') != -1: try: line = line_iter.next() except StopIteration: raise Exception( 'No closing brace found for multi-line HAML beginning at line %s' % (start_multiline + 1)) node_lines += line # Blank lines if haml_node is not None and len(node_lines.strip()) == 0: haml_node.newlines += 1 else: haml_node = create_node(node_lines) root.add_node(haml_node) return root.render()
def process_lines(self, haml_lines): root = RootNode() line_iter = iter(haml_lines) haml_node=None for line_number, line in enumerate(line_iter): node_lines = line # Check for multi-line string when parent is not a FilterNode if not isinstance(root.parent( HamlNode(line) ), FilterNode): if line.count('{') - line.count('}') == 1: start_multiline=line_number # For exception handling while line.count('{') - line.count('}') != -1: try: line = line_iter.next() except StopIteration: raise Exception('No closing brace found for multi-line HAML beginning at line %s' % (start_multiline+1)) node_lines += line # Blank lines if haml_node is not None and len(node_lines.strip()) == 0: haml_node.newlines += 1 else: haml_node = create_node(node_lines) root.add_node(haml_node) return root.render()
def process_lines(self, haml_lines): root = RootNode() line_iter = iter(haml_lines) for line in line_iter: node_lines = line if MULTILINE_ATTR_ELEMENT_REGEX.match(line.strip()): while "}" not in line: line = line_iter.next() node_lines += line haml_node = create_node(node_lines) root.add_node(haml_node) return root.render()
def process_lines(self, haml_lines): root = RootNode(**self.options_dict) line_iter = iter(haml_lines) haml_node=None for line_number, line in enumerate(line_iter): node_lines = line # support for line breaks ("\" symbol at the end of line) while node_lines.rstrip().endswith("\\"): node_lines = node_lines.rstrip()[:-1] try: line = line_iter.next() except StopIteration: raise Exception( "Line break symbol '\\' found at the last line %s" \ % line_number ) node_lines += line if not root.parent_of(HamlNode(line)).inside_filter_node(): if line.count('{') - line.count('}') == 1: start_multiline=line_number # For exception handling while line.count('{') - line.count('}') != -1: try: line = line_iter.next() # support for line breaks inside Node parameters if line.rstrip().endswith("\\"): line = line.rstrip()[:-1] except StopIteration: raise Exception('No closing brace found for multi-line HAML beginning at line %s' % (start_multiline+1)) node_lines += line # Blank lines if haml_node is not None and len(node_lines.strip()) == 0: haml_node.newlines += 1 else: haml_node = create_node(node_lines) if haml_node: root.add_node(haml_node) if self.options_dict and self.options_dict.get('debug_tree'): return root.debug_tree() else: return root.render()
def process_lines(self, haml_lines): root = RootNode() line_iter = iter(haml_lines) for line_number, line in enumerate(line_iter): node_lines = line # Check for multi-line only when last node isn't FilterNode or when last node isn't parent of this node if (not(len(root.internal_nodes)>0 and isinstance(root.internal_nodes[-1], FilterNode))) or not root._should_go_inside_last_node(HamlNode(line)): if line.count('{') - line.count('}') == 1: start_multiline=line_number # For exception handling while line.count('{') - line.count('}') != -1: try: line = line_iter.next() except StopIteration: raise Exception('No closing brace found for multi-line HAML beginning at line %s' % (start_multiline+1)) node_lines += line haml_node = create_node(node_lines) root.add_node(haml_node) return root.render()
def process_lines(self, haml_lines): root = RootNode() for line in haml_lines: haml_node = create_node(line) root.add_node(haml_node) return root.render()