Class: Prettyrb::Nodes::RegexpNode

Inherits:
BaseNode
  • Object
show all
Includes:
StringHelper
Defined in:
lib/prettyrb/nodes/regexp_node.rb

Constant Summary collapse

PERCENT_PAIRS =
{
  "{" => "}",
  "[" => "]",
  "(" => ")",
  "<" => ">",
}

Constants included from StringHelper

StringHelper::HEREDOC_TYPE_REGEX

Instance Method Summary collapse

Methods included from StringHelper

#closing_delimiter, #heredoc?, #heredoc_body, #heredoc_identifier, #heredoc_type, #percent_character, #percent_string?

Methods inherited from BaseNode

#initialize, #parent, #string?

Constructor Details

This class inherits a constructor from Prettyrb::Nodes::BaseNode

Instance Method Details

#end_delimiterObject



25
26
27
# File 'lib/prettyrb/nodes/regexp_node.rb', line 25

def end_delimiter
  PERCENT_PAIRS.fetch(start_delimiter, start_delimiter)
end

#formatObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/prettyrb/nodes/regexp_node.rb', line 29

def format
  raw_content = loc.expression.source
  content = raw_content[1...-1]

  if raw_content[0] == "'"
    content.gsub('"', '\\"').gsub('#{', '\\#{')
  else
    content.gsub("\\", "\\\\")
  end
end

#percent?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/prettyrb/nodes/regexp_node.rb', line 13

def percent?
  loc.expression.source.start_with?("%")
end

#percent_typeObject



17
18
19
# File 'lib/prettyrb/nodes/regexp_node.rb', line 17

def percent_type
  loc.expression.source[1]
end

#start_delimiterObject



21
22
23
# File 'lib/prettyrb/nodes/regexp_node.rb', line 21

def start_delimiter
  loc.expression.source[2]
end