arxiv 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/arxiv.rb +6 -4
- data/lib/arxiv/models/manuscript.rb +1 -1
- data/lib/arxiv/string_scrubber.rb +17 -1
- data/lib/arxiv/version.rb +1 -1
- data/spec/arxiv/models/manuscript_spec.rb +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b3c270215d3c9b3813d3c92d9c10d2c170a3881
|
4
|
+
data.tar.gz: a739179d013070d32ad37e6f78a6c413858c85c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6c947d476518316af35c3ae69e80dde43d382803c8848db0a2eeddbe88a72302d00d63a9b7045db9775241592e9dfe85e100a5a15de098cb9958b159ebe7892
|
7
|
+
data.tar.gz: 31ede1191b470074922d30d6e3281cb2e06867d3990c0e1dd7b9ab52c3e34284645a65beb66d0d0c0b722d2e268610c1287d851951f44277a1dd07672f6fe8bf
|
data/lib/arxiv.rb
CHANGED
@@ -19,8 +19,8 @@ module Arxiv
|
|
19
19
|
|
20
20
|
# In 2007, the ArXiv API changed document ID formats:
|
21
21
|
#
|
22
|
-
#
|
23
|
-
#
|
22
|
+
# https://arxiv.org/abs/math/0510097v1 (legacy)
|
23
|
+
# https://arxiv.org/abs/1202.0819v1 (current)
|
24
24
|
#
|
25
25
|
# These constants help us deal with both use cases.
|
26
26
|
#
|
@@ -45,8 +45,6 @@ module Arxiv
|
|
45
45
|
manuscript
|
46
46
|
end
|
47
47
|
|
48
|
-
private
|
49
|
-
|
50
48
|
def self.parse_arxiv_identifier(identifier)
|
51
49
|
if valid_id?(identifier)
|
52
50
|
identifier
|
@@ -57,16 +55,20 @@ module Arxiv
|
|
57
55
|
identifier # probably an error
|
58
56
|
end
|
59
57
|
end
|
58
|
+
private_class_method :parse_arxiv_identifier
|
60
59
|
|
61
60
|
def self.valid_id?(identifier)
|
62
61
|
identifier =~ ID_FORMAT || identifier =~ LEGACY_ID_FORMAT
|
63
62
|
end
|
63
|
+
private_class_method :valid_id?
|
64
64
|
|
65
65
|
def self.valid_url?(identifier)
|
66
66
|
identifier =~ LEGACY_URL_FORMAT || identifier =~ CURRENT_URL_FORMAT
|
67
67
|
end
|
68
|
+
private_class_method :valid_url?
|
68
69
|
|
69
70
|
def self.legacy_url?(identifier)
|
70
71
|
identifier =~ LEGACY_URL_FORMAT
|
71
72
|
end
|
73
|
+
private_class_method :legacy_url?
|
72
74
|
end
|
@@ -3,7 +3,7 @@ module Arxiv
|
|
3
3
|
include HappyMapper
|
4
4
|
|
5
5
|
tag 'entry'
|
6
|
-
element :arxiv_url,
|
6
|
+
element :arxiv_url, StringScrubber, tag: 'id', parser: :force_ssl_url
|
7
7
|
element :created_at, DateTime, tag: 'published'
|
8
8
|
element :updated_at, DateTime, tag: 'updated'
|
9
9
|
element :title, StringScrubber, parser: :scrub
|
@@ -1,7 +1,23 @@
|
|
1
1
|
module Arxiv
|
2
2
|
class StringScrubber
|
3
|
-
|
3
|
+
def self.scrub(string)
|
4
4
|
string.gsub("\n", ' ').strip.squeeze(" ")
|
5
5
|
end
|
6
|
+
|
7
|
+
# On approximately Oct 2016, ArXiv seems to have converted their entire
|
8
|
+
# site to use SSL. Old HTTP links, still work by redirecting to HTTPS.
|
9
|
+
#
|
10
|
+
# Unfortunately, this change is not yet reflected in their API responses
|
11
|
+
# (e.g. their API still returns a non-SSL URL). Thus, if you try to use
|
12
|
+
# this URL it will redirect to the new SSL URL. This can create problems
|
13
|
+
# if the client is not expecting redirects.
|
14
|
+
#
|
15
|
+
# Hopefully they will update their API. Until then, this little method
|
16
|
+
# forces `url` to use HTTPS rather than HTTP. If `url` is already HTTPS,
|
17
|
+
# it will happily return `url` unaltered.
|
18
|
+
#
|
19
|
+
def self.force_ssl_url(url)
|
20
|
+
url.sub(/^http:/, "https:")
|
21
|
+
end
|
6
22
|
end
|
7
23
|
end
|
data/lib/arxiv/version.rb
CHANGED
@@ -9,7 +9,7 @@ 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
|
-
expect(@manuscript.arxiv_url).to eql("
|
12
|
+
expect(@manuscript.arxiv_url).to eql("https://arxiv.org/abs/1202.0819v1")
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arxiv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scholastica
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: happymapper
|
@@ -136,8 +136,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
136
|
version: '0'
|
137
137
|
requirements: []
|
138
138
|
rubyforge_project: arxiv
|
139
|
-
rubygems_version: 2.4.
|
139
|
+
rubygems_version: 2.4.6
|
140
140
|
signing_key:
|
141
141
|
specification_version: 4
|
142
142
|
summary: Ruby wrapper accessing the arXiv API
|
143
|
-
test_files:
|
143
|
+
test_files:
|
144
|
+
- spec/arxiv/arxiv_spec.rb
|
145
|
+
- spec/arxiv/models/author_spec.rb
|
146
|
+
- spec/arxiv/models/category_spec.rb
|
147
|
+
- spec/arxiv/models/link_spec.rb
|
148
|
+
- spec/arxiv/models/manuscript_spec.rb
|
149
|
+
- spec/spec_helper.rb
|