datacite-mapping 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/.yardopts +2 -1
- data/CHANGES.md +9 -2
- data/LICENSE.md +1 -1
- data/datacite-mapping.gemspec +3 -1
- data/lib/datacite/mapping/creator.rb +2 -2
- data/lib/datacite/mapping/module_info.rb +2 -2
- data/lib/datacite/mapping/resource.rb +1 -1
- data/lib/datacite/mapping.rb +2 -0
- data/spec/unit/datacite/mapping/resource_spec.rb +49 -0
- metadata +32 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e3a18fb33b9c652f32beb77e758b5e317cfc0b1
|
4
|
+
data.tar.gz: 967f6e66468d35a1d1938d3a19d4d530dd0bb22e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 048fac57a650168fdd92e1f4c7ba293088a97b87decb7b72aadb5b8a928ec000cc37a6a40c396b7df01327ba75607f949f78fb5e7abd63475c8efe8c2fec8dba
|
7
|
+
data.tar.gz: 87e5b52c29f34b3972cf6f208ccb1da757f441ea699ba4665232b4da96a53a1af1b9dd553f85a5c764e4f2754725107bdb97e4be794157fdd865e165cdfdf821
|
data/.yardopts
CHANGED
data/CHANGES.md
CHANGED
@@ -1,10 +1,17 @@
|
|
1
|
+
## 0.1.4 (6 Jan 2016)
|
2
|
+
|
3
|
+
- Fix issue where missing `xml:lang` attribute in `<resource>` would produce a `no value, and no default value`
|
4
|
+
error instead of defaulting to `'en'` as documented
|
5
|
+
- Ensure that YARD formats README correctly when converting from GitHub-flavored Markdown to HTML
|
6
|
+
- Update to [XML::MappingExtensions](https://github.com/dmolesUC3/xml-mapping_extensions) 0.3.3
|
7
|
+
|
1
8
|
## 0.1.3 (18 Dec 2015)
|
2
9
|
|
3
|
-
- Update to [TypesafeEnum](https://github.com/dmolesUC3/typesafe_enum) 0.1.4
|
10
|
+
- Update to [TypesafeEnum](https://github.com/dmolesUC3/typesafe_enum) 0.1.4
|
4
11
|
|
5
12
|
## 0.1.2 (17 Dec 2015)
|
6
13
|
|
7
|
-
- Update to [TypesafeEnum](https://github.com/dmolesUC3/typesafe_enum) 0.1.3
|
14
|
+
- Update to [TypesafeEnum](https://github.com/dmolesUC3/typesafe_enum) 0.1.3
|
8
15
|
|
9
16
|
## 0.1.1 (14 Dec 2015)
|
10
17
|
|
data/LICENSE.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c)
|
3
|
+
Copyright (c) 2016 The Regents of the University of California
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
6
6
|
a copy of this software and associated documentation files (the
|
data/datacite-mapping.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.require_paths = ['lib']
|
25
25
|
|
26
26
|
spec.add_dependency 'typesafe_enum', '~> 0.1', '>= 0.1.4'
|
27
|
-
spec.add_dependency 'xml-mapping_extensions', '~> 0.3', '>= 0.3.
|
27
|
+
spec.add_dependency 'xml-mapping_extensions', '~> 0.3', '>= 0.3.3'
|
28
28
|
|
29
29
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
30
30
|
spec.add_development_dependency 'equivalent-xml', '~> 0.6.0'
|
@@ -33,5 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_development_dependency 'simplecov', '~> 0.9.2'
|
34
34
|
spec.add_development_dependency 'simplecov-console', '~> 0.2.0'
|
35
35
|
spec.add_development_dependency 'rubocop', '~> 0.32.1'
|
36
|
+
spec.add_development_dependency 'redcarpet', '~> 3.3'
|
37
|
+
spec.add_development_dependency 'github-markup', '~> 1.4'
|
36
38
|
spec.add_development_dependency 'yard', '~> 0.8'
|
37
39
|
end
|
@@ -16,7 +16,7 @@ module Datacite
|
|
16
16
|
object_node :identifier, 'nameIdentifier', class: NameIdentifier, default_value: nil
|
17
17
|
|
18
18
|
# @!attribute [rw] affiliations
|
19
|
-
# @return [Array<
|
19
|
+
# @return [Array<String>, nil] The creator's affiliations. Defaults to an empty list.
|
20
20
|
array_node :affiliations, 'affiliation', class: String, default_value: []
|
21
21
|
|
22
22
|
alias_method :_name=, :name=
|
@@ -28,7 +28,7 @@ module Datacite
|
|
28
28
|
# Initializes a new {Creator}.
|
29
29
|
# @param name [String] The personal name of the creator, in the format `Family, Given`. Cannot be empty or nil.
|
30
30
|
# @param identifier [NameIdentifier, nil] An identifier for the creator. Optional.
|
31
|
-
# @param affiliations [Array<
|
31
|
+
# @param affiliations [Array<String>, nil] The creator's affiliations. Defaults to an empty list.
|
32
32
|
def initialize(name:, identifier: nil, affiliations: [])
|
33
33
|
self.name = name
|
34
34
|
self.identifier = identifier
|
@@ -4,9 +4,9 @@ module Datacite
|
|
4
4
|
NAME = 'datacite-mapping'
|
5
5
|
|
6
6
|
# The version of this gem
|
7
|
-
VERSION = '0.1.
|
7
|
+
VERSION = '0.1.4'
|
8
8
|
|
9
9
|
# The copyright notice for this gem
|
10
|
-
COPYRIGHT = 'Copyright (c)
|
10
|
+
COPYRIGHT = 'Copyright (c) 2016 The Regents of the University of California'
|
11
11
|
end
|
12
12
|
end
|
@@ -52,7 +52,7 @@ module Datacite
|
|
52
52
|
# @!attribute [rw] language
|
53
53
|
# @return [String] Primary language of the resource: an IETF BCP 47, ISO 639-1 language code.
|
54
54
|
# It's unclear from the spec whether language is required; to play it safe, if it's missing, we default to 'en'.
|
55
|
-
text_node :language, 'language'
|
55
|
+
text_node :language, 'language', default_value: nil
|
56
56
|
|
57
57
|
# @!attribute [rw] resource_type
|
58
58
|
# @return [ResourceType, nil] the type of the resource. Optional.
|
data/lib/datacite/mapping.rb
CHANGED
@@ -464,6 +464,55 @@ module Datacite
|
|
464
464
|
end
|
465
465
|
end
|
466
466
|
|
467
|
+
describe '#parse_xml' do
|
468
|
+
before(:each) do
|
469
|
+
identifier = Identifier.new(value: '10.5072/example-full').save_to_xml
|
470
|
+
|
471
|
+
creators = REXML::Element.new('creators')
|
472
|
+
creators.add_element(Creator.new(
|
473
|
+
name: 'Miller, Elizabeth',
|
474
|
+
identifier: NameIdentifier.new(scheme: 'ORCID', scheme_uri: URI('http://orcid.org'), value: '0000-0001-5000-0007'),
|
475
|
+
affiliations: ['DataCite']
|
476
|
+
).save_to_xml)
|
477
|
+
|
478
|
+
titles = REXML::Element.new('titles')
|
479
|
+
titles.add_element(Title.new(
|
480
|
+
language: 'en-us',
|
481
|
+
value: 'Full DataCite XML Example'
|
482
|
+
).save_to_xml)
|
483
|
+
titles.add_element(Title.new(
|
484
|
+
language: 'en-us',
|
485
|
+
type: TitleType::SUBTITLE,
|
486
|
+
value: 'Demonstration of DataCite Properties.'
|
487
|
+
).save_to_xml)
|
488
|
+
|
489
|
+
publisher = REXML::Element.new('publisher')
|
490
|
+
publisher.text = 'DataCite'
|
491
|
+
|
492
|
+
publication_year = REXML::Element.new('publicationYear')
|
493
|
+
publication_year.text = '2014'
|
494
|
+
|
495
|
+
resource = REXML::Element.new('resource')
|
496
|
+
resource.add_namespace('http://datacite.org/schema/kernel-3')
|
497
|
+
resource.add_namespace('xsi', 'http://www.w3.org/2001/XMLSchema-instance')
|
498
|
+
resource.add_attribute('xsi:schemaLocation', 'http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd')
|
499
|
+
resource.add_element(identifier)
|
500
|
+
resource.add_element(creators)
|
501
|
+
resource.add_element(titles)
|
502
|
+
resource.add_element(publisher)
|
503
|
+
resource.add_element(publication_year)
|
504
|
+
|
505
|
+
@required_xml = resource
|
506
|
+
end
|
507
|
+
|
508
|
+
it 'parses a resource with only required attributes' do
|
509
|
+
resource = Resource.parse_xml(@required_xml)
|
510
|
+
expect(resource.language).to eq('en')
|
511
|
+
end
|
512
|
+
|
513
|
+
it 'correctly differentiates required and optional attributes'
|
514
|
+
end
|
515
|
+
|
467
516
|
describe '#save_to_xml' do
|
468
517
|
it 'sets the namespace to http://datacite.org/schema/kernel-3'
|
469
518
|
it "doesn't clobber the namespace on the various xml:lang attributes"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datacite-mapping
|
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
|
- David Moles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typesafe_enum
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: '0.3'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.3.
|
42
|
+
version: 0.3.3
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: '0.3'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0.3.
|
52
|
+
version: 0.3.3
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: bundler
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +148,34 @@ dependencies:
|
|
148
148
|
- - "~>"
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: 0.32.1
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
name: redcarpet
|
153
|
+
requirement: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - "~>"
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '3.3'
|
158
|
+
type: :development
|
159
|
+
prerelease: false
|
160
|
+
version_requirements: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - "~>"
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '3.3'
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: github-markup
|
167
|
+
requirement: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '1.4'
|
172
|
+
type: :development
|
173
|
+
prerelease: false
|
174
|
+
version_requirements: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '1.4'
|
151
179
|
- !ruby/object:Gem::Dependency
|
152
180
|
name: yard
|
153
181
|
requirement: !ruby/object:Gem::Requirement
|