arxiv 0.0.8 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/README.md +40 -0
- data/arxiv.gemspec +9 -9
- data/circle.yml +5 -0
- data/lib/arxiv.rb +0 -7
- data/lib/arxiv/data/category_abbreviation_to_label_mapping.xml +1352 -0
- data/lib/arxiv/models/author.rb +1 -1
- data/lib/arxiv/models/category.rb +27 -3
- data/lib/arxiv/models/link.rb +1 -1
- data/lib/arxiv/models/manuscript.rb +2 -2
- data/lib/arxiv/string_scrubber.rb +1 -1
- data/lib/arxiv/version.rb +1 -1
- data/spec/arxiv/arxiv_spec.rb +13 -11
- data/spec/arxiv/models/author_spec.rb +3 -3
- data/spec/arxiv/models/category_spec.rb +7 -6
- data/spec/arxiv/models/link_spec.rb +3 -3
- data/spec/arxiv/models/manuscript_spec.rb +28 -24
- data/spec/spec_helper.rb +1 -0
- metadata +67 -32
- data/.rvmrc +0 -1
- data/README.rdoc +0 -44
data/lib/arxiv/models/author.rb
CHANGED
@@ -2,13 +2,37 @@ module Arxiv
|
|
2
2
|
class Category
|
3
3
|
include HappyMapper
|
4
4
|
|
5
|
+
# ArXiv categorizes articles by rather specific subject area using a system
|
6
|
+
# of abbreviated subject codes. For example, "astro-ph.CO" is the code for
|
7
|
+
# "Physics - Cosmology and Extragalactic Astrophysics". As you may expect
|
8
|
+
# there are a lot of codes.
|
9
|
+
#
|
10
|
+
# While terse to the laymen, scientists are apparently very familiar with
|
11
|
+
# the abbreviated codes for their discipline. Nevertheless, all things
|
12
|
+
# considered, it would be better to also offer a more human readable
|
13
|
+
# description.
|
14
|
+
#
|
15
|
+
# ArXiv has an official mapping between abbreviation (astro-ph.CO) and
|
16
|
+
# label (Physics - Cosmology and Extragalactic Astrophysics) but
|
17
|
+
# unfortunately it's not available through their API. Actually, it's an
|
18
|
+
# XML file attached to a Google Groups discussion thread at
|
19
|
+
# http://arxiv-api.googlegroups.com/attach/5e540c5aa16cd1a1/servicedocument.xml?gda=GkSq-0UAAACv8MuSQ9shr-Fm8egpLVNUyoJFgZHB152DBrQX4ANeXa_N1TJg9KB-8oF-EwbRpI6O3f1cykW9hbJ1ju6H3kglGu1iLHeqhw4ZZRj3RjJ_-A&view=1&part=2.
|
20
|
+
#
|
21
|
+
# Relying directly on this attachment has been a problem in the past. As a
|
22
|
+
# result, we decided to store a local copy in this project at
|
23
|
+
# `lib/arxiv/data`. Not ideal but it's our best option until they update
|
24
|
+
# their API.
|
25
|
+
#
|
26
|
+
PATH_TO_CATEGORY_MAPPING_DATA = File.expand_path(File.dirname(__FILE__)) + "/../data/category_abbreviation_to_label_mapping.xml"
|
27
|
+
|
5
28
|
@@category_mapping = {}
|
6
29
|
|
7
30
|
def self.types
|
8
31
|
return @@category_mapping unless @@category_mapping.empty?
|
9
32
|
|
10
|
-
|
11
|
-
xml = ::Nokogiri::XML(
|
33
|
+
file = File.read(PATH_TO_CATEGORY_MAPPING_DATA)
|
34
|
+
xml = ::Nokogiri::XML(file).remove_namespaces!
|
35
|
+
|
12
36
|
categories = xml.xpath("/service/workspace/collection/categories/category")
|
13
37
|
categories.each do |category|
|
14
38
|
abbreviation = category.attributes["term"].value.match(/[^\/]+$/)[0]
|
@@ -29,4 +53,4 @@ module Arxiv
|
|
29
53
|
end
|
30
54
|
|
31
55
|
end
|
32
|
-
end
|
56
|
+
end
|
data/lib/arxiv/models/link.rb
CHANGED
data/lib/arxiv/version.rb
CHANGED
data/spec/arxiv/arxiv_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
module Arxiv
|
4
|
-
|
5
4
|
RSpec::Matchers.define :fetch do |expected|
|
6
5
|
match do |actual|
|
7
6
|
actual.is_a?(Arxiv::Manuscript) && actual.title == expected
|
@@ -9,40 +8,43 @@ module Arxiv
|
|
9
8
|
end
|
10
9
|
|
11
10
|
describe "get" do
|
12
|
-
|
13
11
|
context "when using the current arXiv id format" do
|
14
12
|
it "should fetch a manuscript when passed an id" do
|
15
|
-
Arxiv.get('1202.0819').
|
13
|
+
expect(Arxiv.get('1202.0819')).to fetch("Laser frequency comb techniques for precise astronomical spectroscopy")
|
16
14
|
end
|
15
|
+
|
17
16
|
it "should fetch a manuscript when passed a valid id with a version number" do
|
18
|
-
Arxiv.get('1202.0819v1').
|
17
|
+
expect(Arxiv.get('1202.0819v1')).to fetch("Laser frequency comb techniques for precise astronomical spectroscopy")
|
19
18
|
end
|
19
|
+
|
20
20
|
it "should fetch a manuscript when passed full URL" do
|
21
|
-
Arxiv.get('http://arxiv.org/abs/1202.0819').
|
21
|
+
expect(Arxiv.get('http://arxiv.org/abs/1202.0819')).to fetch("Laser frequency comb techniques for precise astronomical spectroscopy")
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
context "when using the legacy arXiv id format" do
|
26
26
|
it "should fetch a manuscript when passed an id" do
|
27
|
-
Arxiv.get('math.DG/0510097').
|
27
|
+
expect(Arxiv.get('math.DG/0510097')).to fetch("The differential topology of loop spaces")
|
28
28
|
end
|
29
|
+
|
29
30
|
it "should fetch a manuscript when passed a valid id with a version number" do
|
30
|
-
Arxiv.get('math.DG/0510097v1').
|
31
|
+
expect(Arxiv.get('math.DG/0510097v1')).to fetch("The differential topology of loop spaces")
|
31
32
|
end
|
33
|
+
|
32
34
|
it "should fetch a manuscript when passed full URL" do
|
33
|
-
Arxiv.get('http://arxiv.org/abs/math.DG/0510097').
|
35
|
+
expect(Arxiv.get('http://arxiv.org/abs/math.DG/0510097')).to fetch("The differential topology of loop spaces")
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
37
39
|
context "when something goes wrong" do
|
38
40
|
it "should raise an error if the manuscript cannot be found on arXiv" do
|
39
|
-
|
41
|
+
expect { Arxiv.get('1234.1234') }.to raise_error(Arxiv::Error::ManuscriptNotFound)
|
40
42
|
end
|
43
|
+
|
41
44
|
it "should raise an error if the manuscript has an incorrectly formatted id" do
|
42
|
-
|
45
|
+
expect { Arxiv.get('cond-mat0709123') }.to raise_error(Arxiv::Error::MalformedId)
|
43
46
|
end
|
44
47
|
end
|
45
48
|
|
46
49
|
end
|
47
|
-
|
48
50
|
end
|
@@ -6,15 +6,15 @@ module Arxiv
|
|
6
6
|
|
7
7
|
describe "name" do
|
8
8
|
it "should return the author's name" do
|
9
|
-
@author.name.
|
9
|
+
expect(@author.name).to eql("Michael T. Murphy")
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
describe "affiliations" do
|
14
14
|
it "should return an array of the author's affiliations" do
|
15
|
-
@author.affiliations.
|
15
|
+
expect(@author.affiliations).to include("Swinburne University of Technology")
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
@@ -9,24 +9,25 @@ module Arxiv
|
|
9
9
|
|
10
10
|
describe "abbreviation" do
|
11
11
|
it "should fetch the category's abbreviation" do
|
12
|
-
@category.abbreviation.
|
12
|
+
expect(@category.abbreviation).to eql("astro-ph.IM")
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
describe "description" do
|
17
17
|
it "should fetch the category's description" do
|
18
|
-
@category.description.
|
18
|
+
expect(@category.description).to eql("Physics - Instrumentation and Methods for Astrophysics")
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
describe "long_description" do
|
23
23
|
it "should fetch the category's abbreviation and description"do
|
24
|
-
@category.long_description.
|
24
|
+
expect(@category.long_description).to eql("astro-ph.IM (Physics - Instrumentation and Methods for Astrophysics)")
|
25
25
|
end
|
26
|
-
|
27
|
-
|
26
|
+
|
27
|
+
it "should return only the abbreviation when a description cannot be found (e.g. MSC classes)"do
|
28
|
+
expect(@legacy_category.long_description).to eql("58D15 (Primary); 58B10 (Secondary)")
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
31
32
|
end
|
32
|
-
end
|
33
|
+
end
|
@@ -6,15 +6,15 @@ module Arxiv
|
|
6
6
|
|
7
7
|
describe "content_type" do
|
8
8
|
it "should fetch the link's content type" do
|
9
|
-
@link.content_type.
|
9
|
+
expect(@link.content_type).to eql('application/pdf')
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
describe "url" do
|
14
14
|
it "should fetch the link's url" do
|
15
|
-
@link.url.
|
15
|
+
expect(@link.url).to eql('http://arxiv.org/pdf/1202.0819v1')
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
@@ -9,117 +9,121 @@ module Arxiv
|
|
9
9
|
|
10
10
|
describe "arxiv_url" do
|
11
11
|
it "should fetch the link to the manuscript's page on arXiv" do
|
12
|
-
@manuscript.arxiv_url.
|
12
|
+
expect(@manuscript.arxiv_url).to eql("http://arxiv.org/abs/1202.0819v1")
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
describe "created_at" do
|
17
17
|
it "should fetch the datetime when the manuscript was first published to arXiv" do
|
18
|
-
@manuscript.created_at.
|
18
|
+
expect(@manuscript.created_at).to eql(DateTime.parse("2012-02-03T21:00:00Z"))
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
describe "updated_at" do
|
23
23
|
it "should fetch the datetime when the manuscript was last updated" do
|
24
|
-
@manuscript.updated_at.
|
24
|
+
expect(@manuscript.updated_at).to eql(DateTime.parse("2012-02-03T21:00:00Z"))
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "title" do
|
29
29
|
it "should fetch the manuscript's title" do
|
30
|
-
@manuscript.title.
|
30
|
+
expect(@manuscript.title).to eql("Laser frequency comb techniques for precise astronomical spectroscopy")
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
34
|
describe "abstract" do
|
35
35
|
it "should fetch the manuscript's abstract" do
|
36
|
-
@manuscript.abstract.
|
36
|
+
expect(@manuscript.abstract).to eql("Precise astronomical spectroscopic analyses routinely assume that individual pixels in charge-coupled devices (CCDs) have uniform sensitivity to photons. Intra-pixel sensitivity (IPS) variations may already cause small systematic errors in, for example, studies of extra-solar planets via stellar radial velocities and cosmological variability in fundamental constants via quasar spectroscopy, but future experiments requiring velocity precisions approaching ~1 cm/s will be more strongly affected. Laser frequency combs have been shown to provide highly precise wavelength calibration for astronomical spectrographs, but here we show that they can also be used to measure IPS variations in astronomical CCDs in situ. We successfully tested a laser frequency comb system on the Ultra-High Resolution Facility spectrograph at the Anglo-Australian Telescope. By modelling the 2-dimensional comb signal recorded in a single CCD exposure, we find that the average IPS deviates by <8 per cent if it is assumed to vary symmetrically about the pixel centre. We also demonstrate that series of comb exposures with absolutely known offsets between them can yield tighter constraints on symmetric IPS variations from ~100 pixels. We discuss measurement of asymmetric IPS variations and absolute wavelength calibration of astronomical spectrographs and CCDs using frequency combs.")
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
40
|
describe "comment" do
|
41
41
|
it "should fetch the manuscript's comment" do
|
42
|
-
@manuscript.comment.
|
42
|
+
expect(@manuscript.comment).to eql("11 pages, 7 figures. Accepted for publication in MNRAS")
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
describe "revision?" do
|
47
47
|
it "should return true if the manuscript has been revised" do
|
48
|
-
@manuscript.
|
48
|
+
expect(@manuscript).not_to be_revision
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
describe "arxiv_versioned_id" do
|
53
53
|
it "should return the unique versioned document id used by arXiv for a current manuscript" do
|
54
|
-
@manuscript.arxiv_versioned_id.
|
54
|
+
expect(@manuscript.arxiv_versioned_id).to eql('1202.0819v1')
|
55
55
|
end
|
56
|
+
|
56
57
|
it "should return the unique versioned document id used by arXiv for a legacy manuscript" do
|
57
|
-
@legacy_manuscript.arxiv_versioned_id.
|
58
|
+
expect(@legacy_manuscript.arxiv_versioned_id).to eql('math/0510097v1')
|
58
59
|
end
|
59
60
|
end
|
60
61
|
|
61
62
|
describe "arxiv_id" do
|
62
63
|
it "should return the unique document id used by arXiv for a current manuscript" do
|
63
|
-
@manuscript.arxiv_id.
|
64
|
+
expect(@manuscript.arxiv_id).to eql('1202.0819')
|
64
65
|
end
|
66
|
+
|
65
67
|
it "should return the unique document id used by arXiv for a legacy manuscript" do
|
66
|
-
@legacy_manuscript.arxiv_id.
|
68
|
+
expect(@legacy_manuscript.arxiv_id).to eql('math/0510097')
|
67
69
|
end
|
68
70
|
end
|
69
71
|
|
70
72
|
describe "version" do
|
71
73
|
it "should return the manuscript's version number for a current manuscript" do
|
72
|
-
@manuscript.version.
|
74
|
+
expect(@manuscript.version).to eql(1)
|
73
75
|
end
|
76
|
+
|
74
77
|
it "should return the manuscript's version number for a legacy manuscript" do
|
75
|
-
@legacy_manuscript.version.
|
78
|
+
expect(@legacy_manuscript.version).to eql(1)
|
76
79
|
end
|
77
80
|
end
|
78
81
|
|
79
82
|
describe "content_types" do
|
80
83
|
it "return an array of available content_types" do
|
81
|
-
@manuscript.content_types.
|
82
|
-
@manuscript.content_types.should have(2).content_types
|
84
|
+
expect(@manuscript.content_types).to match_array(["text/html", "application/pdf"])
|
83
85
|
end
|
84
86
|
end
|
85
87
|
|
86
88
|
describe "available_in_pdf?" do
|
87
89
|
it "should return true if the manuscript is available to be downloaded in PDF" do
|
88
|
-
@manuscript.
|
90
|
+
expect(@manuscript).to be_available_in_pdf
|
89
91
|
end
|
90
92
|
end
|
91
93
|
|
92
94
|
describe "pdf_url" do
|
93
95
|
it "should return the url to download the manuscript in PDF format" do
|
94
|
-
@manuscript.pdf_url.
|
96
|
+
expect(@manuscript.pdf_url).to eql('http://arxiv.org/pdf/1202.0819v1.pdf')
|
95
97
|
end
|
96
98
|
end
|
97
99
|
|
98
100
|
describe "authors" do
|
99
101
|
it "should return an array of all the manuscript's authors" do
|
100
|
-
@manuscript.authors.
|
102
|
+
expect(@manuscript.authors.size).to eql(5)
|
101
103
|
end
|
102
104
|
end
|
103
105
|
|
104
106
|
describe "categories" do
|
105
107
|
it "should fetch the manuscript's categories" do
|
106
|
-
@manuscript.categories.map(&:abbreviation)
|
108
|
+
catagories = @manuscript.categories.map(&:abbreviation)
|
109
|
+
expect(catagories).to include("astro-ph.IM", "astro-ph.CO", "astro-ph.EP")
|
107
110
|
end
|
108
111
|
end
|
109
112
|
|
110
113
|
describe "primary_category" do
|
111
|
-
it "should
|
112
|
-
@manuscript.primary_category.abbreviation.
|
114
|
+
it "should return the manuscript's primary category" do
|
115
|
+
expect(@manuscript.primary_category.abbreviation).to eql("astro-ph.IM")
|
113
116
|
end
|
114
117
|
end
|
115
118
|
|
116
119
|
describe "legacy_article?" do
|
117
120
|
it "should return true if the manuscript was upload while the legacy API was still in use" do
|
118
|
-
@legacy_manuscript.
|
121
|
+
expect(@legacy_manuscript).to be_legacy_article
|
119
122
|
end
|
123
|
+
|
120
124
|
it "should return false if the manuscript was uploaded after the transition to the new API" do
|
121
|
-
@manuscript.
|
125
|
+
expect(@manuscript).not_to be_legacy_article
|
122
126
|
end
|
123
127
|
end
|
124
128
|
end
|
125
|
-
end
|
129
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,51 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arxiv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
|
-
-
|
9
|
-
- Brian Cody
|
10
|
-
- Robert Walsh
|
7
|
+
- Scholastica
|
11
8
|
autorequire:
|
12
9
|
bindir: bin
|
13
10
|
cert_chain: []
|
14
|
-
date:
|
11
|
+
date: 2015-09-23 00:00:00.000000000 Z
|
15
12
|
dependencies:
|
16
13
|
- !ruby/object:Gem::Dependency
|
17
14
|
name: happymapper
|
18
|
-
requirement:
|
19
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
20
16
|
requirements:
|
21
|
-
- -
|
17
|
+
- - "~>"
|
22
18
|
- !ruby/object:Gem::Version
|
23
|
-
version: '0'
|
19
|
+
version: '0.4'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.4.1
|
24
23
|
type: :runtime
|
25
24
|
prerelease: false
|
26
|
-
version_requirements:
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.4'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.4.1
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: nokogiri
|
29
|
-
requirement:
|
30
|
-
none: false
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
31
36
|
requirements:
|
32
|
-
- -
|
37
|
+
- - "~>"
|
33
38
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
39
|
+
version: '1.6'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.6.6.2
|
35
43
|
type: :runtime
|
36
44
|
prerelease: false
|
37
|
-
version_requirements:
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.6'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 1.6.6.2
|
38
53
|
- !ruby/object:Gem::Dependency
|
39
54
|
name: rspec
|
40
|
-
requirement:
|
41
|
-
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
type: :development
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
63
|
requirements:
|
43
|
-
- -
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: pry
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
44
72
|
- !ruby/object:Gem::Version
|
45
73
|
version: '0'
|
46
74
|
type: :development
|
47
75
|
prerelease: false
|
48
|
-
version_requirements:
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
49
81
|
description: Makes interacting with arXiv data really easy.
|
50
82
|
email:
|
51
83
|
- coryschires@gmail.com
|
@@ -53,15 +85,18 @@ executables: []
|
|
53
85
|
extensions: []
|
54
86
|
extra_rdoc_files: []
|
55
87
|
files:
|
56
|
-
- .gitignore
|
57
|
-
- .rspec
|
58
|
-
- .
|
88
|
+
- ".gitignore"
|
89
|
+
- ".rspec"
|
90
|
+
- ".ruby-gemset"
|
91
|
+
- ".ruby-version"
|
59
92
|
- Gemfile
|
60
93
|
- MIT-LICENSE
|
61
|
-
- README.
|
94
|
+
- README.md
|
62
95
|
- Rakefile
|
63
96
|
- arxiv.gemspec
|
97
|
+
- circle.yml
|
64
98
|
- lib/arxiv.rb
|
99
|
+
- lib/arxiv/data/category_abbreviation_to_label_mapping.xml
|
65
100
|
- lib/arxiv/models/author.rb
|
66
101
|
- lib/arxiv/models/category.rb
|
67
102
|
- lib/arxiv/models/link.rb
|
@@ -74,29 +109,29 @@ files:
|
|
74
109
|
- spec/arxiv/models/link_spec.rb
|
75
110
|
- spec/arxiv/models/manuscript_spec.rb
|
76
111
|
- spec/spec_helper.rb
|
77
|
-
homepage:
|
78
|
-
licenses:
|
112
|
+
homepage: https://github.com/scholastica/arxiv
|
113
|
+
licenses:
|
114
|
+
- MIT
|
115
|
+
metadata: {}
|
79
116
|
post_install_message:
|
80
117
|
rdoc_options: []
|
81
118
|
require_paths:
|
82
119
|
- lib
|
83
120
|
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
121
|
requirements:
|
86
|
-
- -
|
122
|
+
- - ">="
|
87
123
|
- !ruby/object:Gem::Version
|
88
124
|
version: '0'
|
89
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
126
|
requirements:
|
92
|
-
- -
|
127
|
+
- - ">="
|
93
128
|
- !ruby/object:Gem::Version
|
94
129
|
version: '0'
|
95
130
|
requirements: []
|
96
131
|
rubyforge_project: arxiv
|
97
|
-
rubygems_version:
|
132
|
+
rubygems_version: 2.4.6
|
98
133
|
signing_key:
|
99
|
-
specification_version:
|
134
|
+
specification_version: 4
|
100
135
|
summary: Ruby wrapper accessing the arXiv API
|
101
136
|
test_files:
|
102
137
|
- spec/arxiv/arxiv_spec.rb
|