Module: ActiveTriples::Repositories

Defined in:
lib/active_triples/repositories.rb

Overview

Defines module methods for registering an RDF::Repository for persistence of Resources.

This allows any triplestore (or other storage platform) with an RDF::Repository implementation to be used for persistence of resources that will be shared between ActiveFedora::Base objects.

ActiveTriples::Repositories.add_repository :blah, RDF::Repository.new

Multiple repositories can be registered to keep different kinds of resources seperate. This is configurable on subclasses of Resource at the class level.

See Also:

Class Method Summary collapse

Class Method Details

.add_repository(name, repo) ⇒ RDF::Repository

Parameters:

  • name (Symbol)
  • repo (RDF::Repository)

Returns:

  • (RDF::Repository)

Raises:

  • (ArgumentError)

    if a non-repository is passed



25
26
27
28
29
# File 'lib/active_triples/repositories.rb', line 25

def add_repository(name, repo)
  raise ArgumentError, "Repositories must be an RDF::Repository" unless 
    repo.kind_of? RDF::Repository
  repositories[name] = repo
end

.clear_repositories!Object



32
33
34
# File 'lib/active_triples/repositories.rb', line 32

def clear_repositories!
  @repositories = {}
end

.has_subject?(rdf_subject, repo_name = nil) ⇒ Boolean

Check for the specified rdf_subject in the specified repository defaulting to search all registered repositories.

Parameters:

  • rdf_subject (String)
  • repository (Symbol)

    name

Returns:

  • (Boolean)


47
48
49
50
51
52
53
54
55
56
# File 'lib/active_triples/repositories.rb', line 47

def has_subject?(rdf_subject,repo_name=nil)
  search_repositories = [repositories[repo_name]] if repo_name
  search_repositories ||= repositories.values
  found = false
  search_repositories.each do |repo|
    found = repo.has_subject? rdf_subject
    break if found
  end
  found
end

.repositoriesObject



37
38
39
# File 'lib/active_triples/repositories.rb', line 37

def repositories
  @repositories ||= {}
end