Class: RBS::Types::Literal
Constant Summary
collapse
- TABLE =
{
"\\a" => "\a",
"\\b" => "\b",
"\\e" => "\033",
"\\f" => "\f",
"\\n" => "\n",
"\\r" => "\r",
"\\s" => " ",
"\\t" => "\t",
"\\v" => "\v",
"\\\"" => "\"",
"\\\'" => "'",
"\\\\" => "\\",
"\\" => ""
}
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from NoTypeName
#map_type_name
#each_type, #map_type
Methods included from NoSubst
#sub
#free_variables
Methods included from _TypeBase
#each_type, #free_variables, #map_type_name, #sub
Constructor Details
#initialize(literal:, location:) ⇒ Literal
Returns a new instance of Literal.
1534
1535
1536
1537
|
# File 'lib/rbs/types.rb', line 1534
def initialize(literal:, location:)
@literal = literal
@location = location
end
|
Instance Attribute Details
Returns the value of attribute literal.
1531
1532
1533
|
# File 'lib/rbs/types.rb', line 1531
def literal
@literal
end
|
#location ⇒ loc?
Returns the value of attribute location.
1532
1533
1534
|
# File 'lib/rbs/types.rb', line 1532
def location
@location
end
|
Class Method Details
.unescape_string(string, is_double_quote) ⇒ String
Unescape string type body
575
576
577
578
579
580
581
582
583
584
585
586
|
# File 'sig/types.rbs', line 575
def self.unescape_string(string, is_double_quote)
if is_double_quote
string.gsub!(/\\([0-9]{1,3})/) { ($1 || "").to_i(8).chr }
string.gsub!(/\\x([0-9a-f]{1,2})/) { ($1 || "").to_i(16).chr }
string.gsub!(/\\u([0-9a-fA-F]{4})/) { ($1 || "").to_i(16).chr(Encoding::UTF_8) }
string.gsub!(/\\[abefnrstv"'\\]?/, TABLE)
string
else
string.gsub!(/\\['\\]/, TABLE)
string
end
end
|
Instance Method Details
#==(other) ⇒ Object
Also known as:
eql?
1539
1540
1541
|
# File 'lib/rbs/types.rb', line 1539
def ==(other)
other.is_a?(Literal) && other.literal == literal
end
|
#has_classish_type? ⇒ Boolean
1566
1567
1568
|
# File 'lib/rbs/types.rb', line 1566
def has_classish_type?
false
end
|
#has_self_type? ⇒ Boolean
1562
1563
1564
|
# File 'lib/rbs/types.rb', line 1562
def has_self_type?
false
end
|
#hash ⇒ Object
1545
1546
1547
|
# File 'lib/rbs/types.rb', line 1545
def hash
self.class.hash ^ literal.hash
end
|
#to_json(state = nil) ⇒ Object
1554
1555
1556
|
# File 'lib/rbs/types.rb', line 1554
def to_json(state = nil)
{ class: :literal, literal: literal.inspect, location: location }.to_json(state)
end
|
#to_s(level = 0) ⇒ Object
1558
1559
1560
|
# File 'lib/rbs/types.rb', line 1558
def to_s(level = 0)
literal.inspect
end
|
#with_nonreturn_void? ⇒ Boolean
1570
1571
1572
|
# File 'lib/rbs/types.rb', line 1570
def with_nonreturn_void?
false
end
|