Sha256: 33491dc9d38141e3323cfddf23250d616bec45e62a554640fd9db02a5c2f37e9

Contents?: true

Size: 616 Bytes

Versions: 35

Compression:

Stored size: 616 Bytes

Contents

module Aptible
  module CLI
    module Renderer
      class Json < Base
        def visit(node)
          case node
          when Formatter::Root
            visit(node.root)
          when Formatter::Object
            Hash[node.children.each_pair.map { |k, c| [k, visit(c)] }]
          when Formatter::List
            node.children.map { |c| visit(c) }
          when Formatter::Value
            node.value
          else
            raise "Unhandled node: #{node.inspect}"
          end
        end

        def render(node)
          JSON.pretty_generate(visit(node))
        end
      end
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
aptible-cli-0.24.2 lib/aptible/cli/renderer/json.rb
aptible-cli-0.24.1 lib/aptible/cli/renderer/json.rb
aptible-cli-0.24.0 lib/aptible/cli/renderer/json.rb
aptible-cli-0.23.0 lib/aptible/cli/renderer/json.rb
aptible-cli-0.22.0 lib/aptible/cli/renderer/json.rb
aptible-cli-0.21.0 lib/aptible/cli/renderer/json.rb
aptible-cli-0.20.0 lib/aptible/cli/renderer/json.rb
aptible-cli-0.19.9 lib/aptible/cli/renderer/json.rb
aptible-cli-0.19.7 lib/aptible/cli/renderer/json.rb
aptible-cli-0.19.6 lib/aptible/cli/renderer/json.rb
aptible-cli-0.19.4 lib/aptible/cli/renderer/json.rb
aptible-cli-0.19.3 lib/aptible/cli/renderer/json.rb
aptible-cli-0.19.2 lib/aptible/cli/renderer/json.rb
aptible-cli-0.19.1 lib/aptible/cli/renderer/json.rb
aptible-cli-0.19.0 lib/aptible/cli/renderer/json.rb
aptible-cli-0.18.3 lib/aptible/cli/renderer/json.rb
aptible-cli-0.18.2 lib/aptible/cli/renderer/json.rb
aptible-cli-0.18.1 lib/aptible/cli/renderer/json.rb
aptible-cli-0.18.0 lib/aptible/cli/renderer/json.rb
aptible-cli-0.17.2 lib/aptible/cli/renderer/json.rb