Sha256: 18746de18273f73ae61cd6c21ac1f5c624ed801f22855f274dcf7ed50a55298c

Contents?: true

Size: 495 Bytes

Versions: 3

Compression:

Stored size: 495 Bytes

Contents

module A9n
  class Struct
    extend Forwardable

    def_delegators :@data, :empty?, :keys, :key?, :fetch, :[], :[]=

    def initialize(data = {})
      @data = data
    end

    def to_hash
      data
    end

    def merge(another_data)
      data.merge!(another_data)
    end

    def method_missing(name, *args)
      if data.key?(name)
        fetch(name)
      else
        raise NoSuchConfigurationVariableError.new(name)
      end
    end

    private

    attr_reader :data
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
a9n-0.4.10 lib/a9n/struct.rb
a9n-0.4.9 lib/a9n/struct.rb
a9n-0.4.8 lib/a9n/struct.rb