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