module Support::Repositories::RepositoryLoader

Public Class Methods

included(base) click to toggle source
# File lib/hecks/domain/templates/lib/support/repositories/repository_loader.rb, line 4
def self.included(base)
  base.class_eval do
    def save
      test_invariants
      self.class::Repository.save(self)
    end

    def destroy
      self.class::Repository.destroy(self)
    end
  end

  base.instance_eval do
    def create(domain_object = nil)
      self::Repository.create(domain_object).tap(&:test_invariants)
    end

    def fetch(fetchable)
      self::Repository.fetch(fetchable)
    end

    def all
      self::Repository.all
    end
  end
end

Public Instance Methods

all() click to toggle source
# File lib/hecks/domain/templates/lib/support/repositories/repository_loader.rb, line 25
def all
  self::Repository.all
end
create(domain_object = nil) click to toggle source
# File lib/hecks/domain/templates/lib/support/repositories/repository_loader.rb, line 17
def create(domain_object = nil)
  self::Repository.create(domain_object).tap(&:test_invariants)
end
destroy() click to toggle source
# File lib/hecks/domain/templates/lib/support/repositories/repository_loader.rb, line 11
def destroy
  self.class::Repository.destroy(self)
end
fetch(fetchable) click to toggle source
# File lib/hecks/domain/templates/lib/support/repositories/repository_loader.rb, line 21
def fetch(fetchable)
  self::Repository.fetch(fetchable)
end
save() click to toggle source
# File lib/hecks/domain/templates/lib/support/repositories/repository_loader.rb, line 6
def save
  test_invariants
  self.class::Repository.save(self)
end