lib/jimmy/definitions.rb in jimmy-0.3.2 vs lib/jimmy/definitions.rb in jimmy-0.3.3

- old
+ new

@@ -1,11 +1,17 @@ +require 'forwardable' + module Jimmy - class Definitions < Hash + class Definitions + extend Forwardable + delegate %i[empty? key? map] => :@values + attr_reader :schema def initialize(schema) @schema = schema + @values = {} end def evaluate(&block) instance_exec &block end @@ -21,11 +27,11 @@ def data schema.data end def [](key) - super || (schema.parent && schema.parent.definitions[key]) + @values[key] || (schema.parent && schema.parent.definitions[key]) end - SchemaCreation.apply_to(self) { |schema, name| self[name] = schema } + SchemaCreation.apply_to(self) { |schema, name| @values[name] = schema } end end