Class: Regexp::Expression::EscapeSequence::CodepointList

Inherits:
Base
  • Object
show all
Defined in:
lib/regexp_parser/expression/classes/escape_sequence.rb,
lib/regexp_parser/expression/methods/match_length.rb

Instance Method Summary collapse

Methods inherited from Base

#ascii_classes?, #case_insensitive?, #default_classes?, #free_spacing?, #greedy?, #initialize, #initialize_copy, #match, #match?, #multiline?, #possessive?, #quantify, #quantity, #reluctant?, #repetitions, #strfregexp, #to_h, #to_re, #unicode_classes?, #unquantified_clone

Methods included from Shared

#==, #base_length, #coded_offset, #full_length, #human_name, included, #initialize_copy, #is?, #nesting_level=, #offset, #one_of?, #optional?, #parts, #quantified?, #quantifier=, #quantifier_affix, #starts_at, #terminal?, #to_s, #token_class, #type?

Constructor Details

This class inherits a constructor from Regexp::Expression::Base

Instance Method Details

#charObject

Raises:

  • (NoMethodError)


41
42
43
# File 'lib/regexp_parser/expression/classes/escape_sequence.rb', line 41

def char
  raise NoMethodError, 'CodepointList responds only to #chars'
end

#charsObject



49
50
51
# File 'lib/regexp_parser/expression/classes/escape_sequence.rb', line 49

def chars
  codepoints.map { |cp| cp.chr('utf-8') }
end

#codepointObject

Raises:

  • (NoMethodError)


45
46
47
# File 'lib/regexp_parser/expression/classes/escape_sequence.rb', line 45

def codepoint
  raise NoMethodError, 'CodepointList responds only to #codepoints'
end

#codepointsObject



53
54
55
# File 'lib/regexp_parser/expression/classes/escape_sequence.rb', line 53

def codepoints
  text.scan(/\h+/).map(&:hex)
end

#match_lengthObject



164
165
166
# File 'lib/regexp_parser/expression/methods/match_length.rb', line 164

def match_length
  MatchLength.new(self, base: codepoints.count)
end