Sha256: c8c897eee915b3c566c6d53f7dfb0e949a8c14b9ce49cbc1f23d12af0be1cbe6

Contents?: true

Size: 799 Bytes

Versions: 3

Compression:

Stored size: 799 Bytes

Contents

module HammerCLI::Output::Adapter
  class Json < TreeStructure

    def print_record(fields, record)
      result = prepare_collection(fields, [record].flatten(1))
      output_stream.puts JSON.pretty_generate(result.first)
    end

    def print_collection(fields, collection)
      result = prepare_collection(fields, collection)
      output_stream.puts JSON.pretty_generate(result)
    end

    def print_message(msg, msg_params={})
      id = msg_params["id"] || msg_params[:id]
      name = msg_params["name"] || msg_params[:name]

      data = {
        :message => msg.format(msg_params)
      }
      data[:id] = id unless id.nil?
      data[:name] = name unless name.nil?

      puts JSON.pretty_generate(data)
    end

  end

  HammerCLI::Output::Output.register_adapter(:json, Json)
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hammer_cli-0.14.0 lib/hammer_cli/output/adapter/json.rb
hammer_cli-0.13.1 lib/hammer_cli/output/adapter/json.rb
hammer_cli-0.13.0 lib/hammer_cli/output/adapter/json.rb