Sha256: 2e57e9e2a3f805121fedd90a151650b846990efa0986f6ddc398c43c9c50f7b6

Contents?: true

Size: 476 Bytes

Versions: 2

Compression:

Stored size: 476 Bytes

Contents

module NxtSchema
  module Template
    class SubNodes < ::Hash
      def initialize
        super
        transform_keys { |k| k.to_sym }
      end

      def add(node)
        node_name = node.name
        ensure_node_name_free(node_name)
        self[node_name] = node
      end

      def ensure_node_name_free(name)
        return unless key?(name)

        raise KeyError, "Node with name '#{name}' already exists! Node names must be unique!"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nxt_schema-1.0.2 lib/nxt_schema/template/sub_nodes.rb
nxt_schema-1.0.1 lib/nxt_schema/template/sub_nodes.rb