research_metadata 1.1.2 → 2.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 +4 -4
- data/CHANGELOG.md +7 -1
- data/README.md +7 -16
- data/lib/research_metadata/transformer/dataset.rb +25 -33
- data/lib/research_metadata/transformer/{publication.rb → research_output.rb} +28 -34
- data/lib/research_metadata/transformer/thesis.rb +12 -7
- data/lib/research_metadata/version.rb +1 -1
- data/lib/research_metadata.rb +1 -1
- data/research_metadata.gemspec +9 -9
- data/test/test_helper.rb +17 -0
- data/test/transformer/dataset_test.rb +25 -0
- data/test/transformer/thesis_test.rb +37 -0
- metadata +17 -16
- data/spec/spec_helper.rb +0 -4
- data/spec/transformer/dataset_spec.rb +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7861dd7bacfce9d729ef20167e9864a8b15d6143
|
4
|
+
data.tar.gz: 920b37ed1c76a2a20eed3299cd73767bc90b7511
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8f6fcfd79df3cef1b04b6b311037aef402b4428628e55f42c1ace8c6891f113b7b5e361b76d79aa6822628193c366e8c30cf9aec6328dd15cfcfbc1e0edc71f
|
7
|
+
data.tar.gz: 9d0fe4acd36a77025ef170efc8584508fba4fbf272f973e649a10742d719112d7ec59bd142f8f458f84d808aebbb41fe19e1c36e2e1b5efa30889baad714a127
|
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,13 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
-
##
|
5
|
+
## 2.0.0 2017-12-20
|
6
|
+
### Added
|
7
|
+
- Research output - translated title.
|
8
|
+
- Testing against known live data.
|
9
|
+
|
10
|
+
### Changed
|
11
|
+
- For Pure API 59.
|
6
12
|
|
7
13
|
## 1.1.2 2017-07-12
|
8
14
|
### Fixed
|
data/README.md
CHANGED
@@ -5,9 +5,7 @@ Metadata extraction from the Pure Research Information System and transformation
|
|
5
5
|
## Status
|
6
6
|
|
7
7
|
[](https://badge.fury.io/rb/research_metadata)
|
8
|
-
[](https://codeclimate.com/github/lulibrary/research_metadata)
|
10
|
-
[](https://www.versioneye.com/user/projects/5899d1be1e07ae0048c8e4c6)
|
8
|
+
[](https://codeclimate.com/github/lulibrary/research_metadata/maintainability)
|
11
9
|
|
12
10
|
## Installation
|
13
11
|
|
@@ -30,24 +28,17 @@ Or install it yourself as:
|
|
30
28
|
Create a hash for passing to a transformer.
|
31
29
|
|
32
30
|
```ruby
|
33
|
-
# Pure host with authentication.
|
34
31
|
config = {
|
35
|
-
url:
|
36
|
-
username:
|
37
|
-
password:
|
38
|
-
|
39
|
-
```
|
40
|
-
|
41
|
-
```ruby
|
42
|
-
# Pure host without authentication.
|
43
|
-
config = {
|
44
|
-
url: ENV['PURE_URL']
|
32
|
+
url: 'https://YOUR_HOST/ws/api/59',
|
33
|
+
username: 'YOUR_USERNAME',
|
34
|
+
password: 'YOUR_PASSWORD',
|
35
|
+
api_key: 'YOUR_API_KEY'
|
45
36
|
}
|
46
37
|
```
|
47
38
|
|
48
39
|
### Transformation
|
49
40
|
|
50
|
-
|
41
|
+
Configure a transformer for a Pure dataset.
|
51
42
|
|
52
43
|
```ruby
|
53
44
|
transformer = ResearchMetadata::Transformer::Dataset.new config
|
@@ -56,7 +47,7 @@ transformer = ResearchMetadata::Transformer::Dataset.new config
|
|
56
47
|
Give it a Pure identifier and a DOI...
|
57
48
|
|
58
49
|
```ruby
|
59
|
-
metadata = transformer.transform
|
50
|
+
metadata = transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx',
|
60
51
|
doi: '10.1234/foo/bar/1'
|
61
52
|
```
|
62
53
|
|
@@ -8,9 +8,10 @@ module ResearchMetadata
|
|
8
8
|
class Dataset
|
9
9
|
|
10
10
|
# @param config [Hash]
|
11
|
-
# @option config [String] :url
|
12
|
-
# @option config [String] :username
|
13
|
-
# @option config [String] :password
|
11
|
+
# @option config [String] :url URL of the Pure host
|
12
|
+
# @option config [String] :username Username of the Pure host account
|
13
|
+
# @option config [String] :password Password of the Pure host account
|
14
|
+
# @option config [String] :api_key API key of the Pure host account
|
14
15
|
def initialize(config)
|
15
16
|
@config = config
|
16
17
|
@dataset_extractor = Puree::Extractor::Dataset.new config
|
@@ -19,11 +20,10 @@ module ResearchMetadata
|
|
19
20
|
# Dataset transformation
|
20
21
|
#
|
21
22
|
# @param id [String]
|
22
|
-
# @param uuid [String]
|
23
23
|
# @param doi [String]
|
24
24
|
# @return [String, nil]
|
25
|
-
def transform(id
|
26
|
-
@dataset =
|
25
|
+
def transform(id:, doi:)
|
26
|
+
@dataset = @dataset_extractor.find id
|
27
27
|
return nil if !@dataset
|
28
28
|
person_o = person
|
29
29
|
file_o = file
|
@@ -36,11 +36,11 @@ module ResearchMetadata
|
|
36
36
|
subjects: subjects,
|
37
37
|
contributors: person_o['contributor'],
|
38
38
|
dates: dates,
|
39
|
-
language: language,
|
39
|
+
# language: language,
|
40
40
|
resource_type: resource_type,
|
41
41
|
related_identifiers: related_identifiers,
|
42
|
-
sizes: sizes(file_o),
|
43
|
-
formats: formats(file_o),
|
42
|
+
# sizes: sizes(file_o),
|
43
|
+
# formats: formats(file_o),
|
44
44
|
rights_list: rights_list(file_o),
|
45
45
|
descriptions: description,
|
46
46
|
geo_locations: spatial
|
@@ -50,13 +50,13 @@ module ResearchMetadata
|
|
50
50
|
|
51
51
|
private
|
52
52
|
|
53
|
-
def sizes(files)
|
54
|
-
|
55
|
-
end
|
53
|
+
# def sizes(files)
|
54
|
+
# files.map { |i| "#{i.size} B" }
|
55
|
+
# end
|
56
56
|
|
57
|
-
def formats(files)
|
58
|
-
|
59
|
-
end
|
57
|
+
# def formats(files)
|
58
|
+
# files.map { |i| i.mime }
|
59
|
+
# end
|
60
60
|
|
61
61
|
def rights_list(files)
|
62
62
|
arr = []
|
@@ -115,14 +115,6 @@ module ResearchMetadata
|
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
|
-
def extract(uuid: nil, id: nil)
|
119
|
-
if !uuid.nil?
|
120
|
-
return @dataset_extractor.find uuid: uuid
|
121
|
-
else
|
122
|
-
return @dataset_extractor.find id: id
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
118
|
def file
|
127
119
|
@dataset.files
|
128
120
|
end
|
@@ -131,9 +123,9 @@ module ResearchMetadata
|
|
131
123
|
::Datacite::Mapping::Identifier.new(value: doi)
|
132
124
|
end
|
133
125
|
|
134
|
-
def language
|
135
|
-
|
136
|
-
end
|
126
|
+
# def language
|
127
|
+
# @dataset.language
|
128
|
+
# end
|
137
129
|
|
138
130
|
def name_identifier_orcid(person)
|
139
131
|
name_identifier = nil
|
@@ -170,7 +162,7 @@ module ResearchMetadata
|
|
170
162
|
if human
|
171
163
|
if individual.uuid
|
172
164
|
person_extractor = Puree::Extractor::Person.new @config
|
173
|
-
person = person_extractor.find
|
165
|
+
person = person_extractor.find individual.uuid
|
174
166
|
if person
|
175
167
|
identifier = name_identifier_orcid person
|
176
168
|
human.identifier = identifier if identifier
|
@@ -195,21 +187,21 @@ module ResearchMetadata
|
|
195
187
|
end
|
196
188
|
|
197
189
|
def publisher
|
198
|
-
@dataset.publisher
|
190
|
+
@dataset.publisher.name
|
199
191
|
end
|
200
192
|
|
201
193
|
def related_identifiers
|
202
|
-
|
194
|
+
research_outputs = @dataset.research_outputs
|
203
195
|
data = []
|
204
|
-
|
196
|
+
research_outputs.each do |i|
|
205
197
|
# Skip as the relationship cannot currently be determined
|
206
198
|
next if i.type === 'Dataset'
|
207
199
|
|
208
|
-
|
209
|
-
|
200
|
+
research_output_extractor = Puree::Extractor::ResearchOutput.new @config
|
201
|
+
research_output = research_output_extractor.find i.uuid
|
210
202
|
|
211
203
|
# Restrict to those with a DOI
|
212
|
-
doi =
|
204
|
+
doi = research_output.doi if research_output.methods.include? :doi
|
213
205
|
|
214
206
|
if doi
|
215
207
|
doi_part_to_remove = 'http://dx.doi.org/'
|
@@ -2,30 +2,31 @@ module ResearchMetadata
|
|
2
2
|
|
3
3
|
module Transformer
|
4
4
|
|
5
|
-
# Extracts
|
5
|
+
# Extracts research output metadata from the Pure Research Information System
|
6
6
|
# and converts it into the DataCite format.
|
7
7
|
# For text-based resources.
|
8
|
+
# @note Do not use directly.
|
8
9
|
#
|
9
|
-
class
|
10
|
+
class ResearchOutput
|
10
11
|
|
11
12
|
# @param config [Hash]
|
12
|
-
# @option config [String] :url
|
13
|
-
# @option config [String] :username
|
14
|
-
# @option config [String] :password
|
13
|
+
# @option config [String] :url URL of the Pure host
|
14
|
+
# @option config [String] :username Username of the Pure host account
|
15
|
+
# @option config [String] :password Password of the Pure host account
|
16
|
+
# @option config [String] :api_key API key of the Pure host account
|
15
17
|
def initialize(config)
|
16
18
|
@config = config
|
17
|
-
@
|
19
|
+
@research_output_extractor = Puree::Extractor::ResearchOutput.new config
|
18
20
|
end
|
19
21
|
|
20
|
-
#
|
22
|
+
# Research output transformation
|
21
23
|
#
|
22
24
|
# @param id [String]
|
23
|
-
# @param uuid [String]
|
24
25
|
# @param doi [String]
|
25
26
|
# @return [String, nil]
|
26
|
-
def transform(id
|
27
|
-
@
|
28
|
-
return nil if !@
|
27
|
+
def transform(id:, doi:)
|
28
|
+
@research_output = @research_output_extractor.find id
|
29
|
+
return nil if !@research_output
|
29
30
|
person_o = person
|
30
31
|
file_o = file
|
31
32
|
resource = ::Datacite::Mapping::Resource.new(
|
@@ -75,7 +76,7 @@ module ResearchMetadata
|
|
75
76
|
end
|
76
77
|
|
77
78
|
def description
|
78
|
-
desc = @
|
79
|
+
desc = @research_output.description
|
79
80
|
if desc
|
80
81
|
d = ::Datacite::Mapping::Description.new value: desc,
|
81
82
|
type: ::Datacite::Mapping::DescriptionType::ABSTRACT
|
@@ -85,16 +86,8 @@ module ResearchMetadata
|
|
85
86
|
end
|
86
87
|
end
|
87
88
|
|
88
|
-
def extract(uuid: nil, id: nil)
|
89
|
-
if !uuid.nil?
|
90
|
-
return @publication_extractor.find uuid: uuid
|
91
|
-
else
|
92
|
-
return @publication_extractor.find id: id
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
89
|
def file
|
97
|
-
@
|
90
|
+
@research_output.files
|
98
91
|
end
|
99
92
|
|
100
93
|
def identifier(doi)
|
@@ -102,7 +95,7 @@ module ResearchMetadata
|
|
102
95
|
end
|
103
96
|
|
104
97
|
def language
|
105
|
-
@
|
98
|
+
@research_output.language
|
106
99
|
end
|
107
100
|
|
108
101
|
def name_identifier_orcid(person)
|
@@ -120,9 +113,9 @@ module ResearchMetadata
|
|
120
113
|
o['creator'] = []
|
121
114
|
o['contributor'] = []
|
122
115
|
all_persons = []
|
123
|
-
all_persons << @
|
124
|
-
all_persons << @
|
125
|
-
all_persons << @
|
116
|
+
all_persons << @research_output.persons_internal
|
117
|
+
all_persons << @research_output.persons_external
|
118
|
+
all_persons << @research_output.persons_other
|
126
119
|
all_persons.each do |person_type|
|
127
120
|
person_type.each do |individual|
|
128
121
|
pure_role =individual.role.gsub(/\s+/, '')
|
@@ -142,7 +135,7 @@ module ResearchMetadata
|
|
142
135
|
if human
|
143
136
|
if individual.uuid
|
144
137
|
person_extractor = Puree::Extractor::Person.new @config
|
145
|
-
person = person_extractor.find
|
138
|
+
person = person_extractor.find individual.uuid
|
146
139
|
if person
|
147
140
|
identifier = name_identifier_orcid person
|
148
141
|
human.identifier = identifier if identifier
|
@@ -163,7 +156,7 @@ module ResearchMetadata
|
|
163
156
|
end
|
164
157
|
|
165
158
|
def publication_year
|
166
|
-
@
|
159
|
+
@research_output.publication_statuses.each do |i|
|
167
160
|
if i.stage === 'Published' || i.stage === 'Unpublished'
|
168
161
|
return i.date.year
|
169
162
|
end
|
@@ -171,10 +164,6 @@ module ResearchMetadata
|
|
171
164
|
nil
|
172
165
|
end
|
173
166
|
|
174
|
-
def publisher
|
175
|
-
@publication.publisher || 'Publisher unspecified'
|
176
|
-
end
|
177
|
-
|
178
167
|
def resource_type
|
179
168
|
::Datacite::Mapping::ResourceType.new(
|
180
169
|
resource_type_general: ::Datacite::Mapping::ResourceTypeGeneral::TEXT,
|
@@ -183,18 +172,23 @@ module ResearchMetadata
|
|
183
172
|
end
|
184
173
|
|
185
174
|
def subjects
|
186
|
-
@
|
175
|
+
@research_output.keywords.map { |i| ::Datacite::Mapping::Subject.new value: i }
|
187
176
|
end
|
188
177
|
|
189
178
|
def titles
|
190
179
|
arr = []
|
191
|
-
title = ::Datacite::Mapping::Title.new value: @
|
180
|
+
title = ::Datacite::Mapping::Title.new value: @research_output.title
|
192
181
|
arr << title
|
193
|
-
subtitle = @
|
182
|
+
subtitle = @research_output.subtitle
|
194
183
|
if subtitle
|
195
184
|
arr << ::Datacite::Mapping::Title.new(value: subtitle,
|
196
185
|
type: ::Datacite::Mapping::TitleType::SUBTITLE)
|
197
186
|
end
|
187
|
+
translated_title = @research_output.translated_title
|
188
|
+
if translated_title
|
189
|
+
arr << ::Datacite::Mapping::Title.new(value: translated_title,
|
190
|
+
type: ::Datacite::Mapping::TitleType::TRANSLATED_TITLE)
|
191
|
+
end
|
198
192
|
arr
|
199
193
|
end
|
200
194
|
|
@@ -2,25 +2,26 @@ module ResearchMetadata
|
|
2
2
|
|
3
3
|
module Transformer
|
4
4
|
|
5
|
-
# Extracts
|
5
|
+
# Extracts research output metadata from the Pure Research Information System
|
6
6
|
# and converts it into the DataCite format. Usage is for theses
|
7
7
|
# (doctoral and master's).
|
8
8
|
#
|
9
|
-
class Thesis < ResearchMetadata::Transformer::
|
9
|
+
class Thesis < ResearchMetadata::Transformer::ResearchOutput
|
10
10
|
|
11
11
|
# @param config [Hash]
|
12
|
-
# @option config [String] :url
|
13
|
-
# @option config [String] :username
|
14
|
-
# @option config [String] :password
|
12
|
+
# @option config [String] :url URL of the Pure host
|
13
|
+
# @option config [String] :username Username of the Pure host account
|
14
|
+
# @option config [String] :password Password of the Pure host account
|
15
|
+
# @option config [String] :api_key API key of the Pure host account
|
15
16
|
def initialize(config)
|
16
17
|
@config = config
|
17
|
-
@
|
18
|
+
@research_output_extractor = Puree::Extractor::Thesis.new config
|
18
19
|
end
|
19
20
|
|
20
21
|
private
|
21
22
|
|
22
23
|
def pages
|
23
|
-
count = @
|
24
|
+
count = @research_output.pages
|
24
25
|
if count && count > 0
|
25
26
|
return "#{count} pages"
|
26
27
|
else
|
@@ -28,6 +29,10 @@ module ResearchMetadata
|
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
32
|
+
def publisher
|
33
|
+
@research_output.publisher.name || 'Publisher unspecified'
|
34
|
+
end
|
35
|
+
|
31
36
|
def sizes(files)
|
32
37
|
arr = files.map { |i| "#{i.size} B" }
|
33
38
|
arr << pages if pages
|
data/lib/research_metadata.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'puree'
|
2
2
|
require 'datacite/mapping'
|
3
3
|
require 'research_metadata/transformer/dataset'
|
4
|
-
require 'research_metadata/transformer/
|
4
|
+
require 'research_metadata/transformer/research_output'
|
5
5
|
require 'research_metadata/transformer/thesis'
|
6
6
|
require 'research_metadata/version'
|
7
7
|
|
data/research_metadata.gemspec
CHANGED
@@ -4,23 +4,23 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'research_metadata/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'research_metadata'
|
8
8
|
spec.version = ResearchMetadata::VERSION
|
9
|
-
spec.authors =
|
10
|
-
spec.email =
|
9
|
+
spec.authors = 'Adrian Albin-Clark'
|
10
|
+
spec.email = 'a.albin-clark@lancaster.ac.uk'
|
11
11
|
spec.summary = %q{Metadata extraction from the Pure Research Information System and transformation of the metadata into the DataCite format.}
|
12
|
-
spec.homepage =
|
13
|
-
spec.license =
|
12
|
+
spec.homepage = 'https://github.com/lulibrary/research_metadata'
|
13
|
+
spec.license = 'MIT'
|
14
14
|
|
15
15
|
spec.files = `git ls-files -z`.split("\x0")
|
16
16
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
-
spec.require_paths = [
|
18
|
+
spec.require_paths = ['lib']
|
19
19
|
|
20
20
|
spec.required_ruby_version = '~> 2.1'
|
21
21
|
|
22
|
-
spec.add_runtime_dependency
|
23
|
-
spec.add_runtime_dependency
|
22
|
+
spec.add_runtime_dependency 'puree', '~> 2.0'
|
23
|
+
spec.add_runtime_dependency 'datacite-mapping', '~> 0.2.5'
|
24
24
|
|
25
|
-
spec.add_development_dependency
|
25
|
+
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
|
26
26
|
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/reporters'
|
3
|
+
Minitest::Reporters.use!
|
4
|
+
|
5
|
+
lib = File.expand_path('../../lib', __FILE__)
|
6
|
+
$LOAD_PATH.unshift(lib)
|
7
|
+
|
8
|
+
require 'research_metadata'
|
9
|
+
|
10
|
+
def config
|
11
|
+
{
|
12
|
+
url: ENV['PURE_URL_TEST_59'],
|
13
|
+
username: ENV['PURE_USERNAME'],
|
14
|
+
password: ENV['PURE_PASSWORD'],
|
15
|
+
api_key: ENV['PURE_API_KEY']
|
16
|
+
}
|
17
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestTransformerDataset < Minitest::Test
|
4
|
+
|
5
|
+
def transformer
|
6
|
+
ResearchMetadata::Transformer::Dataset.new config
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_transformer
|
10
|
+
assert_instance_of ResearchMetadata::Transformer::Dataset, transformer
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_transform
|
14
|
+
# The 2014 Ebola virus disease outbreak in West Africa
|
15
|
+
id = 'b050f4b5-e272-4914-8cac-3bdc1e673c58'
|
16
|
+
|
17
|
+
metadata = transformer.transform id: id,
|
18
|
+
doi: '10.1234/foo/bar/1'
|
19
|
+
|
20
|
+
# puts metadata
|
21
|
+
|
22
|
+
assert_equal true, metadata.downcase.start_with?('<resource')
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestTransformerThesis < Minitest::Test
|
4
|
+
|
5
|
+
def transformer
|
6
|
+
ResearchMetadata::Transformer::Thesis.new config
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_transformer
|
10
|
+
assert_instance_of ResearchMetadata::Transformer::Thesis, transformer
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_transform_1
|
14
|
+
# Multimodalita e 'city branding'
|
15
|
+
id = '376173c0-fd7a-4d63-93d3-3f2e58e8dc01'
|
16
|
+
|
17
|
+
metadata = transformer.transform id: id,
|
18
|
+
doi: '10.1234/foo/bar/1'
|
19
|
+
|
20
|
+
# puts metadata
|
21
|
+
|
22
|
+
assert_equal true, metadata.downcase.start_with?('<resource')
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_transform_2
|
26
|
+
# Nanoscale imaging and characterisation of Amyloid-β
|
27
|
+
id ='9d3ad4d1-3d46-4551-9139-f783fd4e5123'
|
28
|
+
|
29
|
+
metadata = transformer.transform id: id,
|
30
|
+
doi: '10.1234/foo/bar/1'
|
31
|
+
|
32
|
+
# puts metadata
|
33
|
+
|
34
|
+
assert_equal true, metadata.downcase.start_with?('<resource')
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: research_metadata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Albin-Clark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puree
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: datacite-mapping
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,22 +39,21 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.2.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: minitest-reporters
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.1'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '1.1'
|
55
55
|
description:
|
56
|
-
email:
|
57
|
-
- a.albin-clark@lancaster.ac.uk
|
56
|
+
email: a.albin-clark@lancaster.ac.uk
|
58
57
|
executables: []
|
59
58
|
extensions: []
|
60
59
|
extra_rdoc_files: []
|
@@ -67,13 +66,14 @@ files:
|
|
67
66
|
- Rakefile
|
68
67
|
- lib/research_metadata.rb
|
69
68
|
- lib/research_metadata/transformer/dataset.rb
|
70
|
-
- lib/research_metadata/transformer/
|
69
|
+
- lib/research_metadata/transformer/research_output.rb
|
71
70
|
- lib/research_metadata/transformer/thesis.rb
|
72
71
|
- lib/research_metadata/transformer/transformer.rb
|
73
72
|
- lib/research_metadata/version.rb
|
74
73
|
- research_metadata.gemspec
|
75
|
-
-
|
76
|
-
-
|
74
|
+
- test/test_helper.rb
|
75
|
+
- test/transformer/dataset_test.rb
|
76
|
+
- test/transformer/thesis_test.rb
|
77
77
|
homepage: https://github.com/lulibrary/research_metadata
|
78
78
|
licenses:
|
79
79
|
- MIT
|
@@ -100,5 +100,6 @@ specification_version: 4
|
|
100
100
|
summary: Metadata extraction from the Pure Research Information System and transformation
|
101
101
|
of the metadata into the DataCite format.
|
102
102
|
test_files:
|
103
|
-
-
|
104
|
-
-
|
103
|
+
- test/test_helper.rb
|
104
|
+
- test/transformer/dataset_test.rb
|
105
|
+
- test/transformer/thesis_test.rb
|
data/spec/spec_helper.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Dataset' do
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@config = {
|
7
|
-
url: ENV['PURE_URL'],
|
8
|
-
username: ENV['PURE_USERNAME'],
|
9
|
-
password: ENV['PURE_PASSWORD']
|
10
|
-
}
|
11
|
-
@t = ResearchMetadata::Transformer::Dataset.new @config
|
12
|
-
end
|
13
|
-
|
14
|
-
it '#new' do
|
15
|
-
setup
|
16
|
-
t = ResearchMetadata::Transformer::Dataset.new @config
|
17
|
-
expect(t).to be_a ResearchMetadata::Transformer::Dataset
|
18
|
-
end
|
19
|
-
|
20
|
-
describe 'data transformation' do
|
21
|
-
before(:all) do
|
22
|
-
setup
|
23
|
-
end
|
24
|
-
|
25
|
-
it '#transform with random UUID' do
|
26
|
-
c = Puree::Extractor::Collection.new resource: :dataset,
|
27
|
-
config: @config
|
28
|
-
res = c.random_resource
|
29
|
-
metadata = @t.transform uuid: res.uuid,
|
30
|
-
doi: '10.1234/foo/bar/1'
|
31
|
-
is_xml = metadata.downcase.start_with?('<resource')
|
32
|
-
expect(is_xml).to match(true)
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|