Sha256: 6a2899cb4d40f77b48c224b73469bdc27213cc828f14629c599046b1d3af103c
Contents?: true
Size: 1.93 KB
Versions: 7
Compression:
Stored size: 1.93 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 ssl_options @config[:ssl] 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, omit_ldpr_interaction_model: true) 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 unless 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 options = {} options[:ssl] = ssl_options if ssl_options connection = Faraday.new(host, options) connection.basic_auth(user, password) connection end end end
Version data entries
7 entries across 7 versions & 1 rubygems