Sha256: 38e10fb47c0debcb5a0f93b31b77ca3837e0c30fb078dd8ec94ccb32135f02dc
Contents?: true
Size: 1.49 KB
Versions: 4
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true module RShade module Formatter module Trace class String ROOT_SEP = "---\n" def initialize(opts = {}); end # @param [RShade::EventProcessor] event_store def call(event_store) buffer = StringIO.new event_store.each_with_index do |node, idx| depth = node.level event = node.value if depth == 1 buffer << ROOT_SEP next end next unless event buffer.write line(idx, event, node.vlevel) end buffer.string end def line(line_idx, value, depth) vars = value.vars returned_value = value.return_value || {} returned_str = "#{returned_value[:type]} #{returned_value[:value]}" returned = ColorizedString["=> |#{returned_str}|"].colorize(:magenta) class_method = ColorizedString["#{value.klass}##{value.method_name}"].colorize(:green) full_path = ColorizedString["#{value.path}:#{value.lineno}"].colorize(:blue) line_idx = ColorizedString["[#{line_idx}] "].colorize(:red) var_str = vars.map do |_, val| var_name = val[:name] var_value = val[:value] var_type = val[:type] "#{var_type} #{var_name} => (#{var_value})" end.join(', ') "#{' ' * depth}#{line_idx}#{class_method}(#{var_str}) #{returned} -> #{full_path}\n" end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems