diff --git a/lib/oaken.rb b/lib/oaken.rb index d711ae0..92ced76 100644 --- a/lib/oaken.rb +++ b/lib/oaken.rb @@ -27,12 +27,6 @@ def initialize(type) def update(id, **attributes) self.class.define_method(id) { find(id) } end - - def preregister(names) - names.each do |name| - register name - end - end end class Stored::Memory < Stored::Abstract @@ -70,17 +64,16 @@ module Data extend self class Provider < Struct.new(:data, :provider) - def register(type, key = Oaken.inflector.tableize(type.name)) - stored = provider.new(type) - data.define_method(key) { stored } - end - def preregister(names) names.each do |name| - stored = provider.new(Oaken.inflector.classify(name).constantize) - data.define_method(name) { stored } + type = Oaken.inflector.classify(name).safe_constantize and register type, name end end + + def register(type, key = Oaken.inflector.tableize(type.name)) + stored = provider.new(type) + data.define_method(key) { stored } + end end def self.provider(name, provider)