Sha256: 3e9b2416ff2b8036b39f6f16e1469fb37e7fe39b2f6cc1331f3f0187ed15a683
Contents?: true
Size: 1.78 KB
Versions: 5
Compression:
Stored size: 1.78 KB
Contents
module ActiveFedora class Fedora def initialize(config) @config = config init_base_path end def host @config[:url] end def base_path @config[:base_path] || '/' end def user @config[:user] end def password @config[:password] end def connection # The InboundRelationConnection does provide more data, useful for # things like ldp:IndirectContainers, but it's imposes a significant # performance penalty on every request # @connection ||= InboundRelationConnection.new(CachingConnection.new(authorized_connection)) @connection ||= CachingConnection.new(authorized_connection) end def clean_connection @clean_connection ||= CleanConnection.new(connection) end def ldp_resource_service @service ||= LdpResourceService.new(connection) end SLASH = '/'.freeze BLANK = ''.freeze # Call this to create a Container Resource to act as the base path for this connection def init_base_path connection.head(root_resource_path) ActiveFedora::Base.logger.info "Attempted to init base path `#{root_resource_path}`, but it already exists" if ActiveFedora::Base.logger false rescue Ldp::NotFound if !host.downcase.end_with?("/rest") ActiveFedora::Base.logger.warn "Fedora URL (#{host}) does not end with /rest. This could be a problem. Check your fedora.yml config" end connection.put(root_resource_path, BLANK).success? end # Remove a leading slash from the base_path def root_resource_path @root_resource_path ||= base_path.sub(SLASH, BLANK) end def authorized_connection connection = Faraday.new(host) connection.basic_auth(user, password) connection end end end
Version data entries
5 entries across 5 versions & 1 rubygems