class Terrier

Constants

VERSION

Attributes

citation_data[R]
identifier[R]
zenodo_pdf[R]

Public Class Methods

new(identifier) click to toggle source
# File lib/terrier.rb, line 10
def initialize(identifier)
  @identifier = identifier
  @citation_data = {}
  data
end

Public Instance Methods

data() click to toggle source
# File lib/terrier.rb, line 16
def data
  if uri?(@identifier)
    html_data
  else
    doi_data(identifier)
  end
end

Private Instance Methods

doi_data(doi) click to toggle source
# File lib/terrier.rb, line 53
def doi_data(doi)
  fetched_data = Terrier::DoiData.new(doi).data || {}
  @citation_data = @citation_data.merge(fetched_data)
end
html_data() click to toggle source
# File lib/terrier.rb, line 46
def html_data
  @citation_data = Terrier::HtmlData.new(identifier).data
  if citation_data[:doi]
    doi_data(citation_data[:doi])
  end
end
uri?(string) click to toggle source
# File lib/terrier.rb, line 37
def uri?(string)
  uri = URI.parse(string)
  %w( http https ).include?(uri.scheme)
rescue URI::BadURIError
  false
rescue URI::InvalidURIError
  false
end