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) ⇒ Object



19
20
21
22
# File 'lib/active_triples/repositories.rb', line 19

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

.clear_repositories!Object



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

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)


40
41
42
43
44
45
46
47
48
49
# File 'lib/active_triples/repositories.rb', line 40

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



30
31
32
# File 'lib/active_triples/repositories.rb', line 30

def repositories
  @repositories ||= {}
end