lib/regexp_parser/expression/methods/strfregexp.rb in regexp_parser-0.5.0 vs lib/regexp_parser/expression/methods/strfregexp.rb in regexp_parser-1.0.0

- old
+ new

@@ -38,18 +38,20 @@ def strfregexp(format = '%a', indent_offset = 0, index = nil) have_index = index ? true : false part = {} + print_level = nesting_level > 0 ? nesting_level - 1 : nil + # Order is important! Fields that use other fields in their # definition must appear before the fields they use. part_keys = %w{a m b o i l x s e S y k c q Q z Z t ~t T >} part.keys.each {|k| part[k] = "<?#{k}?>"} - part['>'] = level ? (' ' * (level + indent_offset)) : '' + part['>'] = print_level ? (' ' * (print_level + indent_offset)) : '' - part['l'] = level ? "#{'%d' % level}" : 'root' + part['l'] = print_level ? "#{'%d' % print_level}" : 'root' part['x'] = "#{'%d' % index}" if have_index part['s'] = starts_at part['S'] = full_length part['e'] = starts_at + full_length @@ -99,12 +101,12 @@ class Subexpression < Regexp::Expression::Base def strfregexp_tree(format = '%a', include_self = true, separator = "\n") output = include_self ? [self.strfregexp(format)] : [] - output += map {|exp, index| + output += flat_map do |exp, index| exp.strfregexp(format, (include_self ? 1 : 0), index) - } + end output.join(separator) end alias :strfre_tree :strfregexp_tree