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