arxiv 0.0.8 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,4 +4,4 @@ module Arxiv
4
4
  element :name, StringScrubber, parser: :scrub
5
5
  has_many :affiliations, StringScrubber, parser: :scrub, tag: 'affiliation'
6
6
  end
7
- end
7
+ end
@@ -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
- url = ::URI.parse("http://arxiv-api.googlegroups.com/attach/5e540c5aa16cd1a1/servicedocument.xml?gda=GkSq-0UAAACv8MuSQ9shr-Fm8egpLVNUyoJFgZHB152DBrQX4ANeXa_N1TJg9KB-8oF-EwbRpI6O3f1cykW9hbJ1ju6H3kglGu1iLHeqhw4ZZRj3RjJ_-A&view=1&part=2")
11
- xml = ::Nokogiri::XML(open(url)).remove_namespaces!
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
@@ -4,4 +4,4 @@ module Arxiv
4
4
  attribute :url, String, tag: 'href'
5
5
  attribute :content_type, String, tag: 'type'
6
6
  end
7
- end
7
+ end
@@ -41,7 +41,7 @@ module Arxiv
41
41
  end
42
42
 
43
43
  def content_types
44
- links.map(&:content_type)
44
+ links.map(&:content_type).compact.delete_if { |t| t =~ /^\s*$/ }
45
45
  end
46
46
 
47
47
  def available_in_pdf?
@@ -56,4 +56,4 @@ module Arxiv
56
56
  end
57
57
 
58
58
  end
59
- end
59
+ end
@@ -4,4 +4,4 @@ module Arxiv
4
4
  string.gsub("\n", ' ').strip.squeeze(" ")
5
5
  end
6
6
  end
7
- end
7
+ end
data/lib/arxiv/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Arxiv
2
- VERSION = "0.0.8"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -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').should fetch("Laser frequency comb techniques for precise astronomical spectroscopy")
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').should fetch("Laser frequency comb techniques for precise astronomical spectroscopy")
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').should fetch("Laser frequency comb techniques for precise astronomical spectroscopy")
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').should fetch("The differential topology of loop spaces")
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').should fetch("The differential topology of loop spaces")
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').should fetch("The differential topology of loop spaces")
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
- lambda { Arxiv.get('1234.1234') }.should raise_error(Arxiv::Error::ManuscriptNotFound)
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
- lambda { Arxiv.get('cond-mat0709123') }.should raise_error(Arxiv::Error::MalformedId)
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.should == "Michael T. Murphy"
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.should include("Swinburne University of Technology")
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.should == "astro-ph.IM"
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.should == "Physics - Instrumentation and Methods for Astrophysics"
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.should == "astro-ph.IM (Physics - Instrumentation and Methods for Astrophysics)"
24
+ expect(@category.long_description).to eql("astro-ph.IM (Physics - Instrumentation and Methods for Astrophysics)")
25
25
  end
26
- it "should just return the abbreviation when a description cannot be found (e.g. MSC classes)"do
27
- @legacy_category.long_description.should == "58D15 (Primary); 58B10 (Secondary)"
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.should == 'application/pdf'
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.should == 'http://arxiv.org/pdf/1202.0819v1'
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.should == "http://arxiv.org/abs/1202.0819v1"
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.should == DateTime.parse("2012-02-03T21:00:00Z")
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.should == DateTime.parse("2012-02-03T21:00:00Z")
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.should == "Laser frequency comb techniques for precise astronomical spectroscopy"
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.should == "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."
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.should == "11 pages, 7 figures. Accepted for publication in MNRAS"
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.should_not be_revision
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.should == '1202.0819v1'
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.should == 'math/0510097v1'
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.should == '1202.0819'
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.should == 'math/0510097'
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.should == 1
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.should == 1
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.should include("text/html", "application/pdf")
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.should be_available_in_pdf
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.should == 'http://arxiv.org/pdf/1202.0819v1.pdf'
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.should have(5).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).should include("astro-ph.IM", "astro-ph.CO", "astro-ph.EP")
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 description return the manuscript's primary category" do
112
- @manuscript.primary_category.abbreviation.should == "astro-ph.IM"
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.should be_legacy_article
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.should_not be_legacy_article
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
@@ -1,4 +1,5 @@
1
1
  require 'arxiv'
2
+ require 'pry'
2
3
 
3
4
  RSpec.configure do |config|
4
5
  # some (optional) config here
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.8
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
- - Cory Schires
9
- - Brian Cody
10
- - Robert Walsh
7
+ - Scholastica
11
8
  autorequire:
12
9
  bindir: bin
13
10
  cert_chain: []
14
- date: 2013-03-27 00:00:00.000000000Z
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: &70311509111460 !ruby/object:Gem::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: *70311509111460
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: &70311509111040 !ruby/object:Gem::Requirement
30
- none: false
35
+ requirement: !ruby/object:Gem::Requirement
31
36
  requirements:
32
- - - ! '>='
37
+ - - "~>"
33
38
  - !ruby/object:Gem::Version
34
- version: '0'
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: *70311509111040
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: &70311506139720 !ruby/object:Gem::Requirement
41
- none: false
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: *70311506139720
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
- - .rvmrc
88
+ - ".gitignore"
89
+ - ".rspec"
90
+ - ".ruby-gemset"
91
+ - ".ruby-version"
59
92
  - Gemfile
60
93
  - MIT-LICENSE
61
- - README.rdoc
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: 1.8.15
132
+ rubygems_version: 2.4.6
98
133
  signing_key:
99
- specification_version: 3
134
+ specification_version: 4
100
135
  summary: Ruby wrapper accessing the arXiv API
101
136
  test_files:
102
137
  - spec/arxiv/arxiv_spec.rb