Sha256: ee66d1ff31127abfa40439561491dc70410ca7eb3da6b9b5cc150b71be20daf3

Contents?: true

Size: 653 Bytes

Versions: 2

Compression:

Stored size: 653 Bytes

Contents

module BrainstemAdaptor
  class Specification < Hash

    # @param specification [Hash]
    def initialize(specification)
      super
      self.merge!(specification)
    end

    # @return [Hash]
    def self.instances
      @instances ||= {}
    end

    # @param key [Symbol] Specification name
    # @return [BrainstemAdaptor::Specification]
    def self.[](key)
      self.instances[key.to_sym] or raise ArgumentError, "No such specification '#{key}'"
    end

    # @param key [Symbol] Specification name
    # @param value [Hash] Specification body
    def self.[]=(key, value)
      self.instances[key.to_sym] = self.new(value)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
brainstem-adaptor-0.0.4 lib/brainstem_adaptor/specification.rb
brainstem-adaptor-0.0.3 lib/brainstem_adaptor/specification.rb