Class: Arxivarius::Paper
- Inherits:
-
Object
- Object
- Arxivarius::Paper
- Includes:
- HappyMapper
- Defined in:
- lib/arxivarius/paper.rb
Instance Method Summary collapse
- #arxiv_id ⇒ Object
- #arxiv_url ⇒ Object
- #arxiv_versioned_id ⇒ Object
- #available_in_pdf? ⇒ Boolean
- #content_types ⇒ Object
- #legacy_article? ⇒ Boolean
- #pdf_url ⇒ Object
- #revision? ⇒ Boolean
- #version ⇒ Object
Instance Method Details
#arxiv_id ⇒ Object
33 34 35 |
# File 'lib/arxivarius/paper.rb', line 33 def arxiv_id arxiv_versioned_id.match(/([^v]+)v\d+$/)[1] end |
#arxiv_url ⇒ Object
21 22 23 |
# File 'lib/arxivarius/paper.rb', line 21 def arxiv_url force_https(@arxiv_url) end |
#arxiv_versioned_id ⇒ Object
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
53 54 55 |
# File 'lib/arxivarius/paper.rb', line 53 def available_in_pdf? content_types.any? { |type| type == 'application/pdf' } end |
#content_types ⇒ Object
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
29 30 31 |
# File 'lib/arxivarius/paper.rb', line 29 def legacy_article? arxiv_url.match?(Arxivarius::LEGACY_URL_FORMAT) end |
#pdf_url ⇒ Object
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
25 26 27 |
# File 'lib/arxivarius/paper.rb', line 25 def revision? created_at != updated_at end |
#version ⇒ Object
45 46 47 |
# File 'lib/arxivarius/paper.rb', line 45 def version arxiv_url.match(/v(\d+)$/)[1].to_i end |