Class: Hanami::Mongoid::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/hanami/mongoid/repository.rb

Instance Method Summary collapse

Instance Method Details

#createObject

Forwards create method to accept a model instance



24
25
26
27
28
29
30
31
# File 'lib/hanami/mongoid/repository.rb', line 24

define_method :create do |model_instance|
  if model_instance.is_a? self.model_klass
    model_instance.save
    model_instance
  else
    self.model_klass.create(model_instance)
  end
end

#methodObject

Forwards common repository methods to the model’s collection



15
16
17
18
19
20
# File 'lib/hanami/mongoid/repository.rb', line 15

%i( find find_by where any_of all first last
    destroy_all delete_all update_all ).each do |method|
  define_method method do |*args|
    self.model_klass.send method, *args
  end
end

#model_klassClass

Model class

Returns:

  • (Class)

    the model class



9
10
11
# File 'lib/hanami/mongoid/repository.rb', line 9

def model_klass
  Object.const_get self.class.name.gsub('Repository', '')
end