class Prism::RationalNode
Represents a rational number literal.
1.0r ^^^^
Public Class Methods
Source
# File lib/prism/node.rb, line 20804 def initialize(source, node_id, location, flags, numerator, denominator) @source = source @node_id = node_id @location = location @flags = flags @numerator = numerator @denominator = denominator end
Initialize a new RationalNode node.
Public Instance Methods
Source
# File lib/prism/node.rb, line 20920 def denominator @denominator end
The denominator of the rational number.
1.5r # denominator 2
Source
# File lib/prism/node.rb, line 20910 def numerator @numerator end
The numerator of the rational number.
1.5r # numerator 3
Source
# File lib/prism/node_ext.rb, line 123 def numeric deprecated("value", "numerator", "denominator") if denominator == 1 IntegerNode.new(source, -1, location.chop, flags, numerator) else FloatNode.new(source, -1, location.chop, 0, numerator.to_f / denominator) end end
Returns the value of the node as an IntegerNode or a FloatNode. This method is deprecated in favor of value or numerator/#denominator.
Source
# File lib/prism/node_ext.rb, line 117 def value Rational(numerator, denominator) end
Returns the value of the node as a Ruby Rational.
Flags
Public Instance Methods
Source
# File lib/prism/node.rb, line 20882 def binary? flags.anybits?(IntegerBaseFlags::BINARY) end
0b prefix
Source
# File lib/prism/node.rb, line 20888 def decimal? flags.anybits?(IntegerBaseFlags::DECIMAL) end
0d or no prefix
Source
# File lib/prism/node.rb, line 20900 def hexadecimal? flags.anybits?(IntegerBaseFlags::HEXADECIMAL) end
0x prefix
Source
# File lib/prism/node.rb, line 20894 def octal? flags.anybits?(IntegerBaseFlags::OCTAL) end
0o or 0 prefix
Node Interface
Public Class Methods
Public Instance Methods
Source
# File lib/prism/node.rb, line 20825 def accept(visitor) visitor.visit_rational_node(self) end
See Node.accept.
Source
# File lib/prism/node.rb, line 20830 def child_nodes [] end
See Node.child_nodes.
Also aliased as: deconstruct
Source
# File lib/prism/node.rb, line 20846 def comment_targets [] #: Array[Prism::node | Location] end
See Node.comment_targets.
Source
# File lib/prism/node.rb, line 20841 def compact_child_nodes [] end
Source
# File lib/prism/node.rb, line 20854 def copy(node_id: self.node_id, location: self.location, flags: self.flags, numerator: self.numerator, denominator: self.denominator) RationalNode.new(source, node_id, location, flags, numerator, denominator) end
Creates a copy of self with the given fields, using self as the template.
Source
# File lib/prism/node.rb, line 20835 def each_child_node return to_enum(:each_child_node) unless block_given? end
See Node.each_child_node.