class Regexp::Expression::CharacterSet
def <<(member)
def <<(member) if @members.last.is_a?(CharacterSubSet) @members.last << member else @members << member end end
def include?(member)
def include?(member) @members.each do |m| if m.is_a?(CharacterSubSet) return true if m.include?(member) else return true if member == m.to_s end end; false end
def initialize(token)
def initialize(token) @members = [] @negative = false super end
def matches?(input)
def matches?(input) input =~ /#{to_s}/ ? true : false end
def negate
def negate if @members.last.is_a?(CharacterSubSet) @members.last.negate else @negative = true end end
def negative?
def negative? @negative end
def to_s
def to_s s = @text s << '^' if negative? s << @members.join s << ']' s << @quantifier.to_s if quantified? s end