Sha256: 0859c63b703db214ff57026dd62c4dd44d3be4b33c00a826e0b56d4a200156c9

Contents?: true

Size: 834 Bytes

Versions: 2

Compression:

Stored size: 834 Bytes

Contents

require 'json'

module RShade
  module Formatter
    class Html
      attr_reader :formatter
      FILE_NAME = 'stacktrace.html'.freeze
      TEMPLATE = 'html/template.html.erb'

      def initialize(args={})
        @formatter = args.fetch(:formatter, Json)
      end

      # @param [RShade::EventProcessor] event_store
      def call(event_store)
        data = formatter.call(event_store)
        erb_template = ERB.new(template)
        content = erb_template.result_with_hash({json: data.to_json})
        write_to_file(content)
      end

      def write_to_file(data)
        ::File.open(::File.join(RShade::Config.store_dir, FILE_NAME), "w+") do |f|
          f.write data
        end
      end

      def template
        @template ||=::File.read(::File.join(::RShade::Config.root_dir, TEMPLATE))
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rshade-0.1.9.1 lib/rshade/formatter/html.rb
rshade-0.1.9 lib/rshade/formatter/html.rb