Sha256: 21d3a52d4a5cd5d7af264644d19846fda8f3957dd69ea033c1ffbfb2733eed07

Contents?: true

Size: 774 Bytes

Versions: 35

Compression:

Stored size: 774 Bytes

Contents

module Aptible
  module CLI
    module Formatter
      class Object < Node
        attr_reader :children

        def initialize
          @children = {}
        end

        def value(k, v)
          assign_child(k, Value.new(v)) {}
        end

        def object(k, &block)
          assign_child(k, Object.new, &block)
        end

        def keyed_object(k, object_key, &block)
          assign_child(k, KeyedObject.new(object_key), &block)
        end

        def list(k, &block)
          assign_child(k, List.new, &block)
        end

        private

        def assign_child(k, node)
          raise "Overwriting keys (#{k}) is not allowed" if @children[k]
          yield node
          @children[k] = node
          nil
        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/formatter/object.rb
aptible-cli-0.24.1 lib/aptible/cli/formatter/object.rb
aptible-cli-0.24.0 lib/aptible/cli/formatter/object.rb
aptible-cli-0.23.0 lib/aptible/cli/formatter/object.rb
aptible-cli-0.22.0 lib/aptible/cli/formatter/object.rb
aptible-cli-0.21.0 lib/aptible/cli/formatter/object.rb
aptible-cli-0.20.0 lib/aptible/cli/formatter/object.rb
aptible-cli-0.19.9 lib/aptible/cli/formatter/object.rb
aptible-cli-0.19.7 lib/aptible/cli/formatter/object.rb
aptible-cli-0.19.6 lib/aptible/cli/formatter/object.rb
aptible-cli-0.19.4 lib/aptible/cli/formatter/object.rb
aptible-cli-0.19.3 lib/aptible/cli/formatter/object.rb
aptible-cli-0.19.2 lib/aptible/cli/formatter/object.rb
aptible-cli-0.19.1 lib/aptible/cli/formatter/object.rb
aptible-cli-0.19.0 lib/aptible/cli/formatter/object.rb
aptible-cli-0.18.3 lib/aptible/cli/formatter/object.rb
aptible-cli-0.18.2 lib/aptible/cli/formatter/object.rb
aptible-cli-0.18.1 lib/aptible/cli/formatter/object.rb
aptible-cli-0.18.0 lib/aptible/cli/formatter/object.rb
aptible-cli-0.17.2 lib/aptible/cli/formatter/object.rb