Sha256: 0d1e5908ff50e764e78bfdb08a9cdcf33d4044d82a72aec775226dcfed1ee147

Contents?: true

Size: 777 Bytes

Versions: 4

Compression:

Stored size: 777 Bytes

Contents

module HeimdallApm
  module Visitors
    class PrettyPrintVisitor
      def initialize(scope)
        @indent = 0
        @scope  = scope

        @io     = File.open('log/heimdall_apm.log', 'ab')
        at_exit { @io.close }

        pprint("Request #{@scope}:\n")
      end

      def before_children
        @indent += 2
      end

      def after_children
        @indent -= 2
      end

      def visit(segment)
        pprint("#{segment.type}/#{segment.name}\n")
        @indent += 2
        pprint("duration=#{segment.total_exclusive_time}ms\n")
        @indent -= 2
      end

      def store_in_vault
        @io.flush
      end

      private

      def pprint(str)
        @io.write(' ' * @indent) if @indent > 0
        @io.write(str)
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
heimdall_apm-0.1.3 lib/heimdall_apm/visitors/pretty_print_visitor.rb
heimdall_apm-0.1.2 lib/heimdall_apm/visitors/pretty_print_visitor.rb
heimdall_apm-0.1.1 lib/heimdall_apm/visitors/pretty_print_visitor.rb
heimdall_apm-0.1.0 lib/heimdall_apm/visitors/pretty_print_visitor.rb