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.
Multiple repositories can be registered to keep different kinds of resources seperate. This is configurable on subclasses of Resource at the class level.
Class Method Summary collapse
-
.add_repository(name, repo) ⇒ RDF::Repository
Register a repository to be configured by name.
-
.clear_repositories! ⇒ Hash<Symbol, Repository>
Delete existing name, repository pairs from the registry hash.
-
.has_subject?(rdf_subject, repo_name = nil) ⇒ Boolean
Check for the specified rdf_subject in the specified repository defaulting to search all registered repositories.
-
.repositories ⇒ Hash<Symbol, Repository>
A hash of currrently registered names and repositories.
Class Method Details
.add_repository(name, repo) ⇒ RDF::Repository
Register a repository to be configured by name
31 32 33 34 35 |
# File 'lib/active_triples/repositories.rb', line 31 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! ⇒ Hash<Symbol, Repository>
Delete existing name, repository pairs from the registry hash
42 43 44 |
# File 'lib/active_triples/repositories.rb', line 42 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.
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/active_triples/repositories.rb', line 64 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 |
.repositories ⇒ Hash<Symbol, Repository>
Returns a hash of currrently registered names and repositories.
50 51 52 |
# File 'lib/active_triples/repositories.rb', line 50 def repositories @repositories ||= {} end |