Class: IRB::Color::ColorizeVisitor
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Prism::Visitor
|
|
|
Instance Chain:
self,
Prism::Visitor
|
|
| Inherits: |
Prism::Visitor
|
| Defined in: | lib/irb/color.rb |
Class Attribute Summary
- .tokens readonly
Class Method Summary
Class Attribute Details
.tokens (readonly)
[ GitHub ]# File 'lib/irb/color.rb', line 230
attr_reader :tokens
Class Method Details
.dispatch(location, type)
[ GitHub ]# File 'lib/irb/color.rb', line 235
def dispatch(location, type) if location @tokens << [location.start_line, location.start_column, 1, location.end_line, location.end_column, type, location.slice] end end
.initialize
[ GitHub ]# File 'lib/irb/color.rb', line 231
def initialize @tokens = [] end
.visit_array_node(node)
[ GitHub ].visit_def_node(node)
[ GitHub ]# File 'lib/irb/color.rb', line 249
def visit_def_node(node) dispatch node.name_loc, :method_name super end
.visit_interpolated_symbol_node(node)
[ GitHub ]# File 'lib/irb/color.rb', line 254
def visit_interpolated_symbol_node(node) dispatch node.opening_loc, :symbol node.parts.each do |part| case part when Prism::StringNode dispatch part.content_loc, :symbol when Prism::EmbeddedStatementsNode dispatch part.opening_loc, :symbol dispatch part.closing_loc, :symbol when Prism::EmbeddedVariableNode dispatch part.operator_loc, :symbol end end dispatch node.closing_loc, :symbol super end
.visit_symbol_node(node)
[ GitHub ]# File 'lib/irb/color.rb', line 271
def visit_symbol_node(node) if (node.opening_loc.nil? && node.closing == ':') || node.closing&.match?(/\A['"]:\z/) # Colorize { symbol: 1 } and { 'symbol': 1 } as label dispatch node.location, :LABEL else dispatch node.opening_loc, :symbol dispatch node.value_loc, :symbol dispatch node.closing_loc, :symbol end end