Class: Arxivarius::Paper

Inherits:
Object
  • Object
show all
Includes:
HappyMapper
Defined in:
lib/arxivarius/paper.rb

Instance Method Summary collapse

Instance Method Details

#arxiv_idObject



33
34
35
# File 'lib/arxivarius/paper.rb', line 33

def arxiv_id
  arxiv_versioned_id.match(/([^v]+)v\d+$/)[1]
end

#arxiv_urlObject



21
22
23
# File 'lib/arxivarius/paper.rb', line 21

def arxiv_url
  force_https(@arxiv_url)
end

#arxiv_versioned_idObject



37
38
39
40
41
42
43
# File 'lib/arxivarius/paper.rb', line 37

def arxiv_versioned_id
  @arxiv_versioned_id ||= if legacy_article?
    arxiv_url.match(/(#{Arxivarius::LEGACY_URL_FORMAT})/)[1]
  else
    arxiv_url.match(/(#{Arxivarius::CURRENT_URL_FORMAT})/)[1]
  end
end

#available_in_pdf?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/arxivarius/paper.rb', line 53

def available_in_pdf?
  content_types.any? { |type| type == 'application/pdf' }
end

#content_typesObject



49
50
51
# File 'lib/arxivarius/paper.rb', line 49

def content_types
  @content_types ||= links.map(&:content_type).compact.grep_v(/^\s*$/)
end

#legacy_article?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/arxivarius/paper.rb', line 29

def legacy_article?
  arxiv_url.match?(Arxivarius::LEGACY_URL_FORMAT)
end

#pdf_urlObject



57
58
59
60
# File 'lib/arxivarius/paper.rb', line 57

def pdf_url
  link = links.find { |l| l.content_type == 'application/pdf' }
  force_https(link.url) if link
end

#revision?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/arxivarius/paper.rb', line 25

def revision?
  created_at != updated_at
end

#versionObject



45
46
47
# File 'lib/arxivarius/paper.rb', line 45

def version
  arxiv_url.match(/v(\d+)$/)[1].to_i
end