class ActiveFedora::Fedora
def authorized_connection
def authorized_connection options = {} options[:ssl] = ssl_options if ssl_options connection = Faraday.new(host, options) connection.basic_auth(user, password) connection end
def base_path
def base_path @config[:base_path] || '/' end
def clean_connection
def clean_connection @clean_connection ||= CleanConnection.new(connection) end
def connection
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 host
def host @config[:url] end
def init_base_path
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
def initialize(config)
def initialize(config) @config = config init_base_path end
def ldp_resource_service
def ldp_resource_service @service ||= LdpResourceService.new(connection) end
def password
def password @config[:password] end
def root_resource_path
def root_resource_path @root_resource_path ||= base_path.sub(SLASH, BLANK) end
def ssl_options
def ssl_options @config[:ssl] end
def user
def user @config[:user] end