Sha256: 30bbcf1a7031aeae2f9c0b2132147c23cc4f2701a52108317a530bdfc32859d3
Contents?: true
Size: 672 Bytes
Versions: 1
Compression:
Stored size: 672 Bytes
Contents
module DataModel class Registry def self.instance @instance ||= new(defaults) end def self.register(name, type) instance.register(name, type) end def self.defaults { string: Type.string, hash: Type.hash } end def initialize(*defaults) @types = {} defaults.each do |d| d.each do |k, s| register(k, s) end end end def register(name, type) @types[name] = Model.defaults.merge(type) end def type?(name) @types.key?(name) end def type(name, property = nil) unless @types.key?(name) raise "#{name} is not registered as a type" end @types.fetch(name).merge(property:) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
data_model-0.0.1 | lib/data_model/registry.rb |