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, #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, #ends_at, #full_length, #human_name, included, #initialize_copy, #inspect, #is?, #negated?, #negative?, #nesting_level=, #offset, #one_of?, #optional?, #parts, #pre_quantifier_decoration, #pretty_print, #pretty_print_instance_variables, #quantified?, #quantifier=, #quantifier_affix, #starts_at, #to_s, #token_class, #type?

Constructor Details

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

Instance Method Details

#charObject

Raises:

  • (NoMethodError)


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

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

#charsObject



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

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

#codepointObject

Raises:

  • (NoMethodError)


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

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

#codepointsObject



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

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