Sha256: d36108256338ac067188dab7a5124fe6d022528899720656db8666eeb6a86a20
Contents?: true
Size: 979 Bytes
Versions: 5
Compression:
Stored size: 979 Bytes
Contents
module Nylas # Used to create a hash-like structure which defaults to raising an exception in the event the key to # retrieve does not exist. class Registry # Used to indicate an attempt to retrieve something not yet registered in a registry # Includes the list of keys in the registry for debug purposes. class MissingKeyError < Error def initialize(key, keys) super("key #{key} not in #{keys}") end end attr_accessor :registry_data extend Forwardable def_delegators :registry_data, :keys, :each, :reduce def initialize(initial_data = {}) self.registry_data = initial_data.each.each_with_object({}) do |(key, value), registry| registry[key] = value end end def [](key) registry_data.fetch(key) rescue KeyError raise MissingKeyError.new(key, keys) end def []=(key, value) registry_data[key] = value end def to_h registry_data end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
nylas-4.2.1 | lib/nylas/registry.rb |
nylas-4.0.1 | lib/nylas/registry.rb |
nylas-4.2.0 | lib/nylas/registry.rb |
nylas-4.0.0.rc3 | lib/nylas/registry.rb |
nylas-4.0.0.rc2 | lib/nylas/registry.rb |