lib/vedeu/repositories/repository.rb in vedeu-0.3.4 vs lib/vedeu/repositories/repository.rb in vedeu-0.3.5
- old
+ new
@@ -10,10 +10,11 @@
# { 'models' => [Model, Model, Model] }
#
# { 'models' => [Model] }
#
# @api private
+ #
class Repository
include Vedeu::Common
include Enumerable
@@ -72,17 +73,17 @@
end
# Find a model by name, registers the model by name if not found.
#
# @param name [String]
- # @return []
+ # @return [void]
def find_or_create(name)
if registered?(name)
find(name)
else
- Vedeu.log("Model (#{model}) not found, registering: '#{name}'")
+ Vedeu.log(type: :store, message: "Model (#{model}) not found, registering: '#{name}'")
model.new(name).store
end
end
alias_method :by_name, :find_or_create
@@ -139,16 +140,17 @@
end
# Stores the model instance by name in the repository of the model.
#
# @param model [void] A model instance.
+ # @raise [MissingRequired] When the name attribute is not defined.
# @return [void] The model instance which was stored.
def store(model)
fail MissingRequired, "Cannot store model '#{model.class}' without a " \
"name attribute." unless defined_value?(model.name)
- Vedeu.log(_log_store(model))
+ Vedeu.log(type: log_type(model), message: "#{model.class.name}: '#{model.name}'")
storage[model.name] = model
end
alias_method :register, :store
@@ -172,17 +174,15 @@
def in_memory
{}
end
# @return [String]
- def _log_store(model)
- message = "Storing #{model.class.name}: '#{model.name}' "
-
+ def log_type(model)
if registered?(model.name)
- message + '(updating)'
+ :update
else
- message + '(creating)'
+ :create
end
end
end # Repository