Sha256: 58c67bffe78d407706f57d21970b9a46c9e4be82b377077dfea5091507db8c5f

Contents?: true

Size: 1.15 KB

Versions: 14

Compression:

Stored size: 1.15 KB

Contents

module Geoblacklight
  class Metadata
    ##
    # Instantiates a Geoblacklight::Metadata object used for retrieving and
    # formatting metadata
    # @param reference [Geoblacklight::Reference] the reference object
    def initialize(reference)
      @reference = reference
    end

    ##
    # Handles metadata and returns the retrieved metadata or an error message if
    # something went wrong
    # @return [String] returned metadata string
    def metadata
      response = retrieve_metadata
      return response.body unless response.nil? || response.status == 404
      Geoblacklight.logger.error "Could not reach #{@reference.endpoint}"
      "Could not reach #{@reference.endpoint}"
    end

    ##
    # Retrieves metadata from a url source
    # @return [Faraday::Response, nil] Faraday::Response or nil if there is a
    # connection error
    def retrieve_metadata
      conn = Faraday.new(url: @reference.endpoint)
      conn.get
    rescue Faraday::Error::ConnectionFailed => error
      Geoblacklight.logger.error error.inspect
      nil
    rescue Faraday::Error::TimeoutError => error
      Geoblacklight.logger.error error.inspect
      nil
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
geoblacklight-1.5.1 lib/geoblacklight/metadata.rb
geoblacklight-1.5.0 lib/geoblacklight/metadata.rb
geoblacklight-1.4.0 lib/geoblacklight/metadata.rb
geoblacklight-1.3.0 lib/geoblacklight/metadata.rb
geoblacklight-1.2.0 lib/geoblacklight/metadata.rb
geoblacklight-1.1.2 lib/geoblacklight/metadata.rb
geoblacklight-1.1.0 lib/geoblacklight/metadata.rb
geoblacklight-1.0.3 lib/geoblacklight/metadata.rb
geoblacklight-1.0.2 lib/geoblacklight/metadata.rb
geoblacklight-1.0.1 lib/geoblacklight/metadata.rb
geoblacklight-1.0.0 lib/geoblacklight/metadata.rb
geoblacklight-1.0.0.pre3 lib/geoblacklight/metadata.rb
geoblacklight-1.0.0.pre2 lib/geoblacklight/metadata.rb
geoblacklight-1.0.0.pre1 lib/geoblacklight/metadata.rb