class RDF::Lamprey::Config

@example Configuring Lamprey server

Lamprey::Config
  .register_repository!(:my_repo, RDF::Repository)

Lamprey::Config.configure!(repository: :my_repo)

Attributes

options[RW]

@!attribute [rw] options

Public Class Methods

configure!(**options) click to toggle source

@see new @see configure!

# File app/lamprey.rb, line 67
def self.configure!(**options)
  new(**options).configure!
end
new(repository: :default) click to toggle source

@param repository [RDF::Repository]

# File app/lamprey.rb, line 94
def initialize(repository: :default)
  @options = {}
  @options[:repository] = repository
end
register_repository!(name, klass) click to toggle source

Registers a repository for use with the {#build_repository} method.

@example Registering a custom repository

MyRepository = Class.new(RDF::Repository)

Lamprey::Config.register_repository!(:my_repo, MyRepository)

@param name [Symbol] @param klass [Class] @return [void]

# File app/lamprey.rb, line 82
def self.register_repository!(name, klass)
  @@repositories[name] = klass
end

Public Instance Methods

build_repository() click to toggle source

Builds the repository as given in the configuration.

@return [RDF::Repository] a repository instance

# File app/lamprey.rb, line 103
def build_repository
  @@repositories.fetch(options[:repository]) do
    warn "#{options[:repository]} is not a configured repository. Use "\
         '`Lamprey::Config.register_repository!` to register it before '\
         'configuration. Falling back on the default: ' \
         "#{@@repositories[:default]}."
    @@repositories[:default]
  end.new
end
configure!() click to toggle source

Configures {RDF::Lamprey} with {#options}.

@return [void]

# File app/lamprey.rb, line 117
def configure!
  repository = build_repository
  unless repository.persistent?
    warn "#{repository} is not a persistent repository. "\
         'Data will be lost on server shutdown.'
  end

  RDF::Lamprey.configure { |config| config.set :repository, repository }
end