Sha256: 58df2fd98c72e59ad8252851a48133c022ab11fe7f1bdca25f0ef8b5e962c971

Contents?: true

Size: 663 Bytes

Versions: 15

Compression:

Stored size: 663 Bytes

Contents

module Approvals
  module Writers
    class JsonWriter < TextWriter
      def extension
        'json'
      end

      def format(data)
        hash_or_array = filter(parse_data(data))

        JSON.pretty_generate(hash_or_array) + "\n"
      end

      private

      def parse_data(data)
        if data.respond_to?(:to_str)
          # if the data is a string, assume it has been already json-ified
          JSON.parse(data)
        else
          JSON.parse(data.to_json)
        end
      end

      def filter data
        filter = ::Approvals::Filter.new(Approvals.configuration.excluded_json_keys)
        filter.apply(data)
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
approvals-0.1.7 lib/approvals/writers/json_writer.rb
approvals-0.0.26 lib/approvals/writers/json_writer.rb
approvals-0.0.25 lib/approvals/writers/json_writer.rb
approvals-0.0.24 lib/approvals/writers/json_writer.rb
br-approvals-0.0.22 lib/approvals/writers/json_writer.rb
approvals-0.0.22 lib/approvals/writers/json_writer.rb
approvals-0.0.21 lib/approvals/writers/json_writer.rb
approvals-0.0.20 lib/approvals/writers/json_writer.rb
approvals-0.0.19 lib/approvals/writers/json_writer.rb
approvals-0.0.18 lib/approvals/writers/json_writer.rb
approvals-0.0.17 lib/approvals/writers/json_writer.rb
approvals-0.0.16 lib/approvals/writers/json_writer.rb
approvals-0.0.15 lib/approvals/writers/json_writer.rb
approvals-0.0.14 lib/approvals/writers/json_writer.rb
approvals-0.0.13 lib/approvals/writers/json_writer.rb