Sha256: 8b132bd7178fc7c029a50efb1e89bfe5de65d19565cbb2a5809390c5b1dad8cd
Contents?: true
Size: 621 Bytes
Versions: 1
Compression:
Stored size: 621 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 data.key?(key) fetch(key) 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
a9n-1.2.0 | lib/a9n/struct.rb |