datacite_doi_ify 0.0.1 → 1.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e7aacda4675cf6f5ee73cf69f59e31cdca8b974
4
- data.tar.gz: 08883ffae7e22eb41b509d011060fe60017f2f69
3
+ metadata.gz: dd01ed9332d1f62fe3ae36fad4cbec2aa5ad514c
4
+ data.tar.gz: 426f292c8bbe2598497f70e81b800576741ce38b
5
5
  SHA512:
6
- metadata.gz: ee712aadad5d758a64561bfa75f66d61f65ca98dd8349fc35f6d426dfe5276c4541c61bd52741bd9235b77dea304e39e1bc73e7dccbee05bff9a48d310d17b1d
7
- data.tar.gz: 2385e3181cf08867bb2ad9a8aa441ca3188ac62159650a7410030cd218751f85fe701dfa05213fc9c50a349ddb7255c16fe09211920d44559f5ad0357c8cea66
6
+ metadata.gz: 71c4d58d0ae9397935532294d9eadaae4e56bedf37c742682b1afefa58770b4e9f9228cf490e0304a2cdd2ae6ccb811e7549eb5d5aa9515b8408605b8f19f262
7
+ data.tar.gz: c05c155f2a1ad4ee5b8730df478e1422d10d4d0781317a7e0dbcaa1407e4a15b93268ab587ebeac66f05f97fdd3d508d22b59d5a3c7054fb0fa3f35e49b2011e
data/.gitignore CHANGED
@@ -1,4 +1,6 @@
1
1
  *.gem
2
2
  .bundle
3
+ .idea/
4
+ coverage/
3
5
  Gemfile.lock
4
6
  pkg/*
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.1.3
1
+ ruby-2.1.5
data/.travis.yml CHANGED
@@ -1,8 +1,11 @@
1
1
  language: ruby
2
- bundler_args: --without production
2
+
3
+ sudo: false
4
+
5
+ cache: bundler
3
6
 
4
7
  rvm:
5
- - 2.1.3
8
+ - 2.1.5
6
9
 
7
10
  script:
8
11
  - RAILS_ENV=test bundle exec rspec spec
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  [![Build Status](https://travis-ci.org/FAIRdom/datacite_doi_ify.png?branch=master)](https://travis-ci.org/FAIRdom/datacite_doi_ify)
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/datacitedoiify.png)](http://badge.fury.io/rb/datacitedoiify)
3
+ [![Gem Version](https://badge.fury.io/rb/datacite_doi_ify.svg)](http://badge.fury.io/rb/datacite_doi_ify)
4
4
 
5
- [![Coverage Status](https://coveralls.io/repos/FAIRdom/datacite_doi_ify/badge.png)](https://coveralls.io/r/FAIRdom/datacite_doi_ify)
5
+ [![Coverage Status](https://coveralls.io/repos/FAIRdom/datacite_doi_ify/badge.png?branch=master)](https://coveralls.io/r/FAIRdom/datacite_doi_ify?branch=master)
6
6
 
7
- [![Code Climate](https://codeclimate.com/github/FAIRdom/datacite_doi_ify/badges/gpa.svg)](https://codeclimate.com/github/FAIRdom/datacite_doi_ify)
7
+ [![Code Climate](https://codeclimate.com/github/FAIRdom/datacite_doi_ify/badges/gpa.svg)](https://codeclimate.com/github/FAIRdom/datacite_doi_ify)
@@ -7,9 +7,9 @@ Gem::Specification.new do |s|
7
7
  s.version = DataciteDoiIfy::VERSION
8
8
  s.authors = ["quyen nguyen"]
9
9
  s.email = ["thucquyendn@gmail.com"]
10
- s.homepage = ""
11
- s.summary = "A ruby gem to working with datacite doi restful web service"
12
- s.description = "Mint DOI and resolve DOI using Datacite restful web service"
10
+ s.homepage = "https://seek.sysmo-db.org/people/372"
11
+ s.summary = "A ruby gem for working with the DataCite doi restful web service"
12
+ s.description = "Mint a DOI and resolve a DOI using the Datacite restful web service"
13
13
 
14
14
  s.rubyforge_project = "datacite_doi_ify"
15
15
 
@@ -20,15 +20,16 @@ Gem::Specification.new do |s|
20
20
 
21
21
  # specify any dependencies here; for example:
22
22
  # s.add_development_dependency "rspec"
23
- # s.add_runtime_dependency "rest-client"
24
- s.add_development_dependency "rspec"
25
- s.add_development_dependency "rspec-nc"
26
- s.add_development_dependency "guard"
27
- s.add_development_dependency "guard-rspec"
28
- s.add_development_dependency "pry"
29
- s.add_development_dependency "pry-remote"
30
- s.add_development_dependency "pry-nav"
31
- s.add_development_dependency "coveralls"
32
- s.add_development_dependency "webmock"
33
- s.add_development_dependency "vcr"
23
+ s.add_runtime_dependency "rest-client", "~> 1.7"
24
+
25
+ s.add_development_dependency "rspec", "~> 3.1"
26
+ s.add_development_dependency "rspec-nc", "~> 0.2"
27
+ s.add_development_dependency "guard", "~> 2.8"
28
+ s.add_development_dependency "guard-rspec", "~> 4.3"
29
+ s.add_development_dependency "pry", "~> 0.10"
30
+ s.add_development_dependency "pry-remote", "~> 0.1"
31
+ s.add_development_dependency "pry-nav", "~> 0.2"
32
+ s.add_development_dependency "coveralls", "~> 0.7"
33
+ s.add_development_dependency "webmock", "~> 1.20"
34
+ s.add_development_dependency "vcr", "~> 2.9"
34
35
  end
@@ -3,16 +3,16 @@ require 'rest-client'
3
3
  class Datacite
4
4
  ENDPOINT = 'https://mds.datacite.org'
5
5
 
6
- def initialize(user_name, password)
7
- @endpoint = RestClient::Resource.new(ENDPOINT, user_name, password)
6
+ def initialize(user_name, password, endpoint=nil)
7
+ endpoint ||= ENDPOINT
8
+ @endpoint = RestClient::Resource.new(endpoint, user_name, password)
8
9
  end
9
10
 
10
11
  def resolve doi
11
12
  begin
12
13
  response = @endpoint["doi/#{doi}"].get
13
14
  rescue Exception => e
14
- #error code
15
- e.message[0..2]
15
+ e.message
16
16
  end
17
17
  end
18
18
 
@@ -20,8 +20,7 @@ class Datacite
20
20
  begin
21
21
  response = @endpoint['doi'].post "doi=#{doi}\nurl=#{url}", content_type: "text/plain;charset=UTF-8"
22
22
  rescue Exception => e
23
- #error code
24
- e.message[0..2]
23
+ e.message
25
24
  end
26
25
  end
27
26
 
@@ -29,8 +28,7 @@ class Datacite
29
28
  begin
30
29
  response = @endpoint['metadata'].post(metadata,content_type: 'application/xml;charset=UTF-8')
31
30
  rescue Exception => e
32
- #error code
33
- e.message[0..2]
31
+ e.message
34
32
  end
35
33
  end
36
34
 
@@ -38,8 +36,7 @@ class Datacite
38
36
  begin
39
37
  response = @endpoint["metadata/#{doi}"].get
40
38
  rescue Exception => e
41
- #error code
42
- e.message[0..2]
39
+ e.message
43
40
  end
44
41
  end
45
42
  end
@@ -1,3 +1,3 @@
1
1
  module DataciteDoiIfy
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -15,19 +15,19 @@ describe DataciteDoiIfy do
15
15
  invalid_user = 'invalid'
16
16
  invalid_password = 'invalid'
17
17
  endpoint = Datacite.new(invalid_user, invalid_password)
18
- expect(endpoint.resolve(doi)).to eq('401')
18
+ expect(endpoint.resolve(doi)[0..2]).to eq('401')
19
19
  end
20
20
 
21
21
  it 'returns a 404 for not-found DOI', :vcr => {:cassette_name => "resolve_a_DOI/returns_a_404_for_not-found_DOI"} do
22
22
  doi = 'non-existing'
23
- expect(endpoint.resolve(doi)).to eq('404')
23
+ expect(endpoint.resolve(doi)[0..2]).to eq('404')
24
24
  end
25
25
  end
26
26
 
27
27
  describe 'mint a DOI' do
28
28
  context 'DOI does not exist' do
29
29
  it 'mints a new DOI', :vcr => {:cassette_name => "mint_a_DOI/mints_a_new_DOI"} do
30
- metadata = open('my_test.xml').read
30
+ metadata = open_test_metadata('my_test.xml')
31
31
  expect(endpoint.upload_metadata(metadata)).to eq('OK (10.5072/my_test)')
32
32
  expect(endpoint.mint(doi, url)).to eq('OK')
33
33
  expect(endpoint.resolve(doi)).to eq(url)
@@ -36,14 +36,14 @@ describe DataciteDoiIfy do
36
36
  it 'returns 412 if metadata has not been uploaded', :vcr => {:cassette_name => "mint_a_DOI/returns_412_if_metadata_has_not_been_uploaded"} do
37
37
  new_doi = "10.5072/new_doi"
38
38
  #412 Precondition failed
39
- expect(endpoint.mint(new_doi, url)).to eq('412')
39
+ expect(endpoint.mint(new_doi, url)[0..2]).to eq('412')
40
40
  end
41
41
  end
42
42
 
43
43
  context 'DOI exists' do
44
44
  it 'updates the URL if different', :vcr => {:cassette_name => "mint_a_DOI/updates_the_URL_if_different"} do
45
45
  #use test_doi.xml so that it does not update the url of my_test.xml
46
- metadata = open('test_doi.xml').read
46
+ metadata = open_test_metadata('test_doi.xml')
47
47
  doi = '10.5072/test_doi'
48
48
  expect(endpoint.upload_metadata(metadata)).to eq('OK (10.5072/test_doi)')
49
49
  expect(endpoint.mint(doi, url)).to eq('OK')
@@ -58,26 +58,26 @@ describe DataciteDoiIfy do
58
58
 
59
59
  describe 'retrieve metadata' do
60
60
  it 'returns metadata associated with a given DOI', :vcr => {:cassette_name => "retrieve_metadata/returns_metadata_associated_with_a_given_DOI"} do
61
- metadata = open('my_test.xml').read
61
+ metadata = open_test_metadata('my_test.xml')
62
62
  expect(endpoint.metadata(doi)).to eq(metadata)
63
63
  end
64
64
 
65
65
  it 'returns 404 for not found DOI', :vcr => {:cassette_name => "retrieve_metadata/returns_404_for_not_found_DOI"} do
66
66
  doi = 'non-existing'
67
- expect(endpoint.metadata(doi)).to eq('404')
67
+ expect(endpoint.metadata(doi)[0..2]).to eq('404')
68
68
  end
69
69
  end
70
70
 
71
71
  describe 'upload metadata' do
72
72
  it 'creates new version of metadata', :vcr => {:cassette_name => "upload_metadata/creates_new_version_of_metadata"} do
73
- metadata = open('my_test.xml').read
73
+ metadata = open_test_metadata('my_test.xml')
74
74
  expect(endpoint.upload_metadata(metadata)).to eq('OK (10.5072/my_test)')
75
75
  end
76
76
 
77
77
  it 'returns 400 for an invalid xml', :vcr => {:cassette_name => "upload_metadata/returns_400_for_an_invalid_xml"} do
78
78
  # metadata without a DOI => Bad request
79
- metadata = open('invalid_doi.xml').read
80
- expect(endpoint.upload_metadata(metadata)).to eq('400')
79
+ metadata = open_test_metadata('invalid_doi.xml')
80
+ expect(endpoint.upload_metadata(metadata)[0..2]).to eq('400')
81
81
  end
82
82
  end
83
83
 
@@ -91,5 +91,10 @@ describe DataciteDoiIfy do
91
91
  end
92
92
  end
93
93
 
94
+ def open_test_metadata filename
95
+ file = File.join "spec/","/metadata_files/", filename
96
+ open(file).read
97
+ end
98
+
94
99
  #TODO: Media API
95
100
  end
File without changes
File without changes
metadata CHANGED
@@ -1,156 +1,170 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datacite_doi_ify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - quyen nguyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-05 00:00:00.000000000 Z
11
+ date: 2014-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rspec
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - ">="
31
+ - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '0'
33
+ version: '3.1'
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - ">="
38
+ - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '0'
40
+ version: '3.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rspec-nc
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ">="
45
+ - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '0'
47
+ version: '0.2'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ">="
52
+ - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '0'
54
+ version: '0.2'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: guard
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ">="
59
+ - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '0'
61
+ version: '2.8'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ">="
66
+ - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '0'
68
+ version: '2.8'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: guard-rspec
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ">="
73
+ - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '0'
75
+ version: '4.3'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ">="
80
+ - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '0'
82
+ version: '4.3'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: pry
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ">="
87
+ - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '0'
89
+ version: '0.10'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ">="
94
+ - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '0'
96
+ version: '0.10'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: pry-remote
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ">="
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0'
103
+ version: '0.1'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ">="
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0'
110
+ version: '0.1'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: pry-nav
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0'
117
+ version: '0.2'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ">="
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '0'
124
+ version: '0.2'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: coveralls
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - ">="
129
+ - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: '0'
131
+ version: '0.7'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ">="
136
+ - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: '0'
138
+ version: '0.7'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: webmock
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - ">="
143
+ - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '0'
145
+ version: '1.20'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - ">="
150
+ - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '0'
152
+ version: '1.20'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: vcr
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - ">="
157
+ - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '0'
159
+ version: '2.9'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - ">="
164
+ - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '0'
153
- description: Mint DOI and resolve DOI using Datacite restful web service
166
+ version: '2.9'
167
+ description: Mint a DOI and resolve a DOI using the Datacite restful web service
154
168
  email:
155
169
  - thucquyendn@gmail.com
156
170
  executables: []
@@ -168,11 +182,9 @@ files:
168
182
  - README.md
169
183
  - Rakefile
170
184
  - datacite_doi_ify.gemspec
171
- - invalid_doi.xml
172
185
  - lib/datacite_doi_ify.rb
173
186
  - lib/datacite_doi_ify/datacite.rb
174
187
  - lib/datacite_doi_ify/version.rb
175
- - my_test.xml
176
188
  - spec/cassettes/mint_a_DOI/mints_a_new_DOI.yml
177
189
  - spec/cassettes/mint_a_DOI/returns_412_if_metadata_has_not_been_uploaded.yml
178
190
  - spec/cassettes/mint_a_DOI/updates_the_URL_if_different.yml
@@ -184,9 +196,11 @@ files:
184
196
  - spec/cassettes/upload_metadata/creates_new_version_of_metadata.yml
185
197
  - spec/cassettes/upload_metadata/returns_400_for_an_invalid_xml.yml
186
198
  - spec/datacite_doi_ify_spec.rb
199
+ - spec/metadata_files/invalid_doi.xml
200
+ - spec/metadata_files/my_test.xml
201
+ - spec/metadata_files/test_doi.xml
187
202
  - spec/spec_helper.rb
188
- - test_doi.xml
189
- homepage: ''
203
+ homepage: https://seek.sysmo-db.org/people/372
190
204
  licenses: []
191
205
  metadata: {}
192
206
  post_install_message:
@@ -208,7 +222,7 @@ rubyforge_project: datacite_doi_ify
208
222
  rubygems_version: 2.2.2
209
223
  signing_key:
210
224
  specification_version: 4
211
- summary: A ruby gem to working with datacite doi restful web service
225
+ summary: A ruby gem for working with the DataCite doi restful web service
212
226
  test_files:
213
227
  - spec/cassettes/mint_a_DOI/mints_a_new_DOI.yml
214
228
  - spec/cassettes/mint_a_DOI/returns_412_if_metadata_has_not_been_uploaded.yml
@@ -221,4 +235,7 @@ test_files:
221
235
  - spec/cassettes/upload_metadata/creates_new_version_of_metadata.yml
222
236
  - spec/cassettes/upload_metadata/returns_400_for_an_invalid_xml.yml
223
237
  - spec/datacite_doi_ify_spec.rb
238
+ - spec/metadata_files/invalid_doi.xml
239
+ - spec/metadata_files/my_test.xml
240
+ - spec/metadata_files/test_doi.xml
224
241
  - spec/spec_helper.rb