Sha256: 038146ed705356805189109fb54ddbc2bc4e3aebd51cdc55899587c40c73232e
Contents?: true
Size: 1.12 KB
Versions: 113
Compression:
Stored size: 1.12 KB
Contents
module Regexp::Expression module Shared # default implementation def parts [text.dup] end private def intersperse(expressions, separator) expressions.flat_map { |exp| [exp, separator] }.slice(0...-1) end end CharacterSet.class_eval { def parts; ["#{text}#{'^' if negated?}", *expressions, ']'] end } CharacterSet::Range.class_eval { def parts; intersperse(expressions, text.dup) end } Conditional::Expression.class_eval { def parts; [text.dup, condition, *intersperse(branches, '|'), ')'] end } Group::Base.class_eval { def parts; [text.dup, *expressions, ')'] end } Group::Passive.class_eval { def parts; implicit? ? expressions : super end } Group::Comment.class_eval { def parts; [text.dup] end } Subexpression.class_eval { def parts; expressions end } SequenceOperation.class_eval { def parts; intersperse(expressions, text.dup) end } end
Version data entries
113 entries across 112 versions & 16 rubygems