Class: RBS::Types::Literal
- Inherits:
-
Object
- Object
- RBS::Types::Literal
- Includes:
- EmptyEachType, NoFreeVariables, NoSubst, NoTypeName
- Defined in:
- lib/rbs/types.rb
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
-
#literal ⇒ Object
readonly
Returns the value of attribute literal.
-
#location ⇒ Object
readonly
Returns the value of attribute location.
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #has_classish_type? ⇒ Boolean
- #has_self_type? ⇒ Boolean
- #hash ⇒ Object
-
#initialize(literal:, location:) ⇒ Literal
constructor
A new instance of Literal.
- #to_json(state = _ = nil) ⇒ Object
- #to_s(level = 0) ⇒ Object
- #with_nonreturn_void? ⇒ Boolean
Methods included from NoTypeName
Methods included from EmptyEachType
Methods included from NoSubst
Methods included from NoFreeVariables
Constructor Details
#initialize(literal:, location:) ⇒ Literal
Returns a new instance of Literal.
1462 1463 1464 1465 |
# File 'lib/rbs/types.rb', line 1462 def initialize(literal:, location:) @literal = literal @location = location end |
Instance Attribute Details
#literal ⇒ Object (readonly)
Returns the value of attribute literal.
1459 1460 1461 |
# File 'lib/rbs/types.rb', line 1459 def literal @literal end |
#location ⇒ Object (readonly)
Returns the value of attribute location.
1460 1461 1462 |
# File 'lib/rbs/types.rb', line 1460 def location @location end |
Class Method Details
.unescape_string(string, is_double_quote) ⇒ Object
1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 |
# File 'lib/rbs/types.rb', line 1518 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?
1467 1468 1469 |
# File 'lib/rbs/types.rb', line 1467 def ==(other) other.is_a?(Literal) && other.literal == literal end |
#has_classish_type? ⇒ Boolean
1494 1495 1496 |
# File 'lib/rbs/types.rb', line 1494 def has_classish_type? false end |
#has_self_type? ⇒ Boolean
1490 1491 1492 |
# File 'lib/rbs/types.rb', line 1490 def has_self_type? false end |
#hash ⇒ Object
1473 1474 1475 |
# File 'lib/rbs/types.rb', line 1473 def hash self.class.hash ^ literal.hash end |
#to_json(state = _ = nil) ⇒ Object
1482 1483 1484 |
# File 'lib/rbs/types.rb', line 1482 def to_json(state = _ = nil) { class: :literal, literal: literal.inspect, location: location }.to_json(state) end |
#to_s(level = 0) ⇒ Object
1486 1487 1488 |
# File 'lib/rbs/types.rb', line 1486 def to_s(level = 0) literal.inspect end |
#with_nonreturn_void? ⇒ Boolean
1498 1499 1500 |
# File 'lib/rbs/types.rb', line 1498 def with_nonreturn_void? false end |