Sha256: 06270ad966d9e354e7bedd7c69c9fcd7e82f8ac1b6879946f6cd24fa115774c7
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
# frozen_string_literal: true module RShade module Formatter module Trace class Json attr_reader :filepath, :pretty def initialize(filepath:, pretty: false) @filepath = filepath @pretty = pretty end # @param [RShade::EventProcessor] event_store def call(event_store) ::File.open(filepath, 'a+') do |file| file.puts(convert_to_json(flat(event_store), pretty)) end end private def convert_to_json(object, pretty) return JSON.pretty_generate(object) if pretty JSON.generate(object) end def flat(event_store) arr = event_store.filter_map do |node| next unless node.value serialize(node.value) end arr.sort_by { |item| item[:level] } end def serialize(value) { class: value.klass.to_s, method_name: value.method_name, full_path: "#{value.path}:#{value.lineno}", level: value.level, vars: value.vars } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rshade-0.2.2 | lib/rshade/formatter/trace/json.rb |