arxiv 0.1.4 → 0.1.7
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/.github/workflows/ci.yml +34 -0
- data/README.md +2 -1
- data/arxiv.gemspec +1 -0
- data/lib/arxiv/models/author.rb +20 -0
- data/lib/arxiv/models/manuscript.rb +1 -0
- data/lib/arxiv/version.rb +1 -1
- data/lib/arxiv.rb +1 -0
- data/package-lock.json +6 -0
- data/spec/arxiv/models/author_spec.rb +12 -0
- data/spec/arxiv/models/manuscript_spec.rb +1 -1
- metadata +20 -11
- data/circle.yml +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1edec782b776e7b7c0b094d5ac28080d019fe9dc
|
4
|
+
data.tar.gz: b1267323afeb55920bbf7c06d7201c5124af98cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b633003bd20f55dcc3440776906b29bd5f1713b979e31b5688b7546115f12c64fc2c35143309b17fb361affb1e95638e96f3218aaae0189dd590b7f2e4e72f8a
|
7
|
+
data.tar.gz: a2daa99ad08adc5d28a25293d997940d8e799b6cb10a633a31d9cb86ff4b9094bdbcadafdab109fed9e5aec86c47ef89df8bb08d540ba79ac30fa2142449eea6
|
@@ -0,0 +1,34 @@
|
|
1
|
+
name: ci
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
jobs:
|
5
|
+
test:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
|
8
|
+
steps:
|
9
|
+
- uses: actions/checkout@v3
|
10
|
+
- name: Set up Ruby
|
11
|
+
uses: ruby/setup-ruby@359bebbc29cbe6c87da6bc9ea3bc930432750108
|
12
|
+
- name: Install dependencies
|
13
|
+
run: bundle install
|
14
|
+
- name: Run tests
|
15
|
+
run: rspec .
|
16
|
+
|
17
|
+
deploy:
|
18
|
+
name: Build and publish gem
|
19
|
+
# if: github.ref == 'refs/heads/main' && needs.test.result == 'success'
|
20
|
+
needs: test
|
21
|
+
runs-on: ubuntu-latest
|
22
|
+
|
23
|
+
steps:
|
24
|
+
- uses: actions/checkout@v3
|
25
|
+
- name: Set up Ruby
|
26
|
+
uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6
|
27
|
+
- name: Publish to GPR
|
28
|
+
run: |
|
29
|
+
curl -u $RUBYGEMS_USERNAME:$RUBYGEMS_PASSWORD https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
|
30
|
+
gem build arxiv.gemspec
|
31
|
+
gem push `ls | grep *.gem`
|
32
|
+
env:
|
33
|
+
RUBYGEMS_USERNAME: "${{ secrets.RUBYGEMS_USERNAME }}"
|
34
|
+
RUBYGEMS_PASSWORD: "${{ secrets.RUBYGEMS_PASSWORD }}"
|
data/README.md
CHANGED
@@ -37,4 +37,5 @@ Look at a manuscript's categories:
|
|
37
37
|
manuscript.primary_category.description # => "Physics - Instrumentation and Methods for Astrophysics"
|
38
38
|
|
39
39
|
### License
|
40
|
-
This is an open source project built by
|
40
|
+
This is an open source project built by [Scholastica](https://scholasticahq.com) under the [MIT-LICENSE](https://github.com/scholastica/timber/blob/master/MIT-LICENSE).
|
41
|
+
|
data/arxiv.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
# specify any dependencies here; for example:
|
22
22
|
s.add_runtime_dependency "happymapper", '~> 0.4', '>= 0.4.1'
|
23
23
|
s.add_runtime_dependency "nokogiri", '~> 1.6', '>= 1.6.6.2'
|
24
|
+
s.add_runtime_dependency "full-name-splitter", '~> 0.1.2'
|
24
25
|
|
25
26
|
s.add_development_dependency "rspec", '~> 3.3', '>= 3.3.0'
|
26
27
|
s.add_development_dependency "pry", '~> 0.10.2'
|
data/lib/arxiv/models/author.rb
CHANGED
@@ -3,5 +3,25 @@ module Arxiv
|
|
3
3
|
include HappyMapper
|
4
4
|
element :name, StringScrubber, parser: :scrub
|
5
5
|
has_many :affiliations, StringScrubber, parser: :scrub, tag: 'affiliation'
|
6
|
+
|
7
|
+
# Unfortunately, the ArXiv API does not provide separate attributes for
|
8
|
+
# `author.first_name` and `author.last_name`; it only provides a single
|
9
|
+
# `author.name` attribute.
|
10
|
+
#
|
11
|
+
# Yet most standards within academic publishing (e.g. JATS XML) prefer to
|
12
|
+
# differentiate first name and last name of authors. To support that
|
13
|
+
# expectation, we've split the name value (leveraging a third-party gem).
|
14
|
+
# Ideally, ArXiv would provide this data directly. But until then, this
|
15
|
+
# solution should be suitable.
|
16
|
+
#
|
17
|
+
def first_name
|
18
|
+
FullNameSplitter.split(name).first
|
19
|
+
end
|
20
|
+
|
21
|
+
# See code comment for `first_name`.
|
22
|
+
#
|
23
|
+
def last_name
|
24
|
+
FullNameSplitter.split(name).last
|
25
|
+
end
|
6
26
|
end
|
7
27
|
end
|
data/lib/arxiv/version.rb
CHANGED
data/lib/arxiv.rb
CHANGED
data/package-lock.json
ADDED
@@ -10,6 +10,18 @@ module Arxiv
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
describe "first_name" do
|
14
|
+
it "should return the author's first name" do
|
15
|
+
expect(@author.first_name).to eql("Michael T.")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "last_name" do
|
20
|
+
it "should return the author's last name" do
|
21
|
+
expect(@author.last_name).to eql("Murphy")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
13
25
|
describe "affiliations" do
|
14
26
|
it "should return an array of the author's affiliations" do
|
15
27
|
expect(@author.affiliations).to include("Swinburne University of Technology")
|
@@ -93,7 +93,7 @@ module Arxiv
|
|
93
93
|
|
94
94
|
describe "pdf_url" do
|
95
95
|
it "should return the url to download the manuscript in PDF format" do
|
96
|
-
expect(@manuscript.pdf_url).to eql('
|
96
|
+
expect(@manuscript.pdf_url).to eql('https://arxiv.org/pdf/1202.0819v1.pdf')
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
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.7
|
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: 2022-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: happymapper
|
@@ -50,6 +50,20 @@ dependencies:
|
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 1.6.6.2
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: full-name-splitter
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 0.1.2
|
60
|
+
type: :runtime
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 0.1.2
|
53
67
|
- !ruby/object:Gem::Dependency
|
54
68
|
name: rspec
|
55
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,6 +106,7 @@ executables: []
|
|
92
106
|
extensions: []
|
93
107
|
extra_rdoc_files: []
|
94
108
|
files:
|
109
|
+
- ".github/workflows/ci.yml"
|
95
110
|
- ".gitignore"
|
96
111
|
- ".rspec"
|
97
112
|
- ".ruby-gemset"
|
@@ -101,7 +116,6 @@ files:
|
|
101
116
|
- README.md
|
102
117
|
- Rakefile
|
103
118
|
- arxiv.gemspec
|
104
|
-
- circle.yml
|
105
119
|
- lib/arxiv.rb
|
106
120
|
- lib/arxiv/data/category_abbreviation_to_label_mapping.xml
|
107
121
|
- lib/arxiv/models/author.rb
|
@@ -110,6 +124,7 @@ files:
|
|
110
124
|
- lib/arxiv/models/manuscript.rb
|
111
125
|
- lib/arxiv/string_scrubber.rb
|
112
126
|
- lib/arxiv/version.rb
|
127
|
+
- package-lock.json
|
113
128
|
- spec/arxiv/arxiv_spec.rb
|
114
129
|
- spec/arxiv/models/author_spec.rb
|
115
130
|
- spec/arxiv/models/category_spec.rb
|
@@ -136,14 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
151
|
version: '0'
|
137
152
|
requirements: []
|
138
153
|
rubyforge_project: arxiv
|
139
|
-
rubygems_version: 2.4.
|
154
|
+
rubygems_version: 2.4.5.5
|
140
155
|
signing_key:
|
141
156
|
specification_version: 4
|
142
157
|
summary: Ruby wrapper accessing the arXiv API
|
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
|
158
|
+
test_files: []
|
data/circle.yml
DELETED