module Realm::Mixins::RepositoryHelper::ClassMethods

Protected Instance Methods

use_repo(*names, readonly: self < Realm::QueryHandler) click to toggle source
# File lib/realm/mixins/repository_helper.rb, line 16
def use_repo(*names, readonly: self < Realm::QueryHandler)
  raise OnlyOneWriteRepo if !readonly && (names.size > 1 || defined?(@write_repo_injected))

  names << default_repo_name if names.empty?
  names.each { |name| inject_repo(name, readonly) }
  @write_repo_injected = true unless readonly
end

Private Instance Methods

default_repo_name() click to toggle source
# File lib/realm/mixins/repository_helper.rb, line 33
def default_repo_name
  raise InjectingRepoOutsideAggregate unless respond_to?(:aggregate)

  aggregate
end
inject_repo(name, readonly) click to toggle source
# File lib/realm/mixins/repository_helper.rb, line 26
def inject_repo(name, readonly)
  repo_name = "#{name}_repo"
  return inject(repo_name) unless readonly

  inject(repo_name) { |repo| repo.respond_to?(:readonly) ? repo.readonly : repo }
end