Sha256: a6254c0dbfb0124090a845ad9a6ea5c45be878a419ab2c4b674ec7282f434c39
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
module RShade module Formatter class Json attr_reader :event_processor # @param [RShade::EventProcessor] event_store def call(event_store) @event_store = event_store flat end def flat arr = [] event_store.each do |node| arr << item(node.event) end arr.sort_by { |item| item[:level]} end def hierarchical hash = {} event_store.each do |node| depth = node.level ref = hash_iterate(hash, depth) ref[:data] = item(node) end sort_hash(hash) end def sort_hash(h) {}.tap do |h2| h.sort.each do |k,v| h2[k] = v.is_a?(Hash) ? sort_hash(v) : v end end end def hash_iterate(hash, depth) (0..depth).each do |lvl| unless hash[:inner] hash[:inner] = {} end hash = hash[:inner] end hash end def item(value) { class: value.klass.to_s, method_name: value.method_name, full_path: "#{value.path}:#{value.lineno}", level: value.depth, vars: value.vars } end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rshade-0.1.9.1 | lib/rshade/formatter/json.rb |
rshade-0.1.9 | lib/rshade/formatter/json.rb |