Module: Vedeu::Repositories::Registerable::ClassMethods
- Defined in:
- lib/vedeu/repositories/registerable.rb
Overview
These class methods are mixed into the repository.
Instance Method Summary collapse
-
#null(klass) ⇒ Symbol
The null model is used when the repository cannot be found.
-
#real(klass) ⇒ Symbol
The real model is the usual model to use for a given repository.
-
#register(model = nil, storage = {}) ⇒ Vedeu::Repositories::Repository
Register a repository for storing models.
-
#repository ⇒ void
Returns the repositories registered.
-
#reset! ⇒ void
(also: #reset)
Remove all stored models from the repository.
Instance Method Details
#null(klass) ⇒ Symbol
The null model is used when the repository cannot be found.
17 18 19 |
# File 'lib/vedeu/repositories/registerable.rb', line 17 def null(klass) define_method(:null_model) { klass } end |
#real(klass) ⇒ Symbol
The real model is the usual model to use for a given repository.
26 27 28 |
# File 'lib/vedeu/repositories/registerable.rb', line 26 def real(klass) define_method(:model) { instance_variable_set('@model', klass) } end |
#register(model = nil, storage = {}) ⇒ Vedeu::Repositories::Repository
Register a repository for storing models.
35 36 37 38 39 |
# File 'lib/vedeu/repositories/registerable.rb', line 35 def register(model = nil, storage = {}) new(model, storage).tap do |klass| Vedeu::Repositories.register(klass.repository) end end |
#repository ⇒ void
If the repository is ‘Geometries’, for example, then @models will be either an empty Geometries repository or the collection of stored models.
This method returns an undefined value.
Returns the repositories registered.
49 50 51 |
# File 'lib/vedeu/repositories/registerable.rb', line 49 def repository @models ||= reset! end |
#reset! ⇒ void Also known as: reset
This method returns an undefined value.
Remove all stored models from the repository.
56 57 58 |
# File 'lib/vedeu/repositories/registerable.rb', line 56 def reset! @models = register end |