Sha256: 520a2c4fc38b241928890908b2b1bf39eea4e56f7f201e1d2c68e4ba72ef5d66
Contents?: true
Size: 642 Bytes
Versions: 7
Compression:
Stored size: 642 Bytes
Contents
module A9n class Struct extend Forwardable attr_reader :data def_delegators :data, :empty?, :keys, :key?, :fetch, :[], :[]= def initialize(data = {}) @data = data end alias to_hash data alias to_h data def merge(another_data) data.merge!(another_data) end def find(key) if key && data.key?(key.to_sym) fetch(key.to_sym) else raise KeyNotFoundError.new, "Could not find #{key} in #{data.keys.inspect}" end end def method_missing(key, *_args) find(key) end def set(key, value) data[key.to_sym] = value end end end
Version data entries
7 entries across 7 versions & 1 rubygems