datacite_doi_ify 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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