datacite-mapping 0.1.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.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +42 -0
  3. data/.rubocop.yml +28 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +2 -0
  6. data/.yardopts +2 -0
  7. data/CHANGES.md +3 -0
  8. data/Gemfile +3 -0
  9. data/LICENSE.md +22 -0
  10. data/README.md +168 -0
  11. data/Rakefile +49 -0
  12. data/datacite-mapping.gemspec +37 -0
  13. data/examples/reading.rb +75 -0
  14. data/examples/writing.rb +49 -0
  15. data/lib/datacite/mapping.rb +36 -0
  16. data/lib/datacite/mapping/alternate_identifier.rb +45 -0
  17. data/lib/datacite/mapping/contributor.rb +125 -0
  18. data/lib/datacite/mapping/creator.rb +48 -0
  19. data/lib/datacite/mapping/date.rb +153 -0
  20. data/lib/datacite/mapping/description.rb +121 -0
  21. data/lib/datacite/mapping/geo_location.rb +49 -0
  22. data/lib/datacite/mapping/geo_location_box.rb +137 -0
  23. data/lib/datacite/mapping/geo_location_point.rb +102 -0
  24. data/lib/datacite/mapping/identifier.rb +45 -0
  25. data/lib/datacite/mapping/module_info.rb +12 -0
  26. data/lib/datacite/mapping/name_identifier.rb +48 -0
  27. data/lib/datacite/mapping/related_identifier.rb +209 -0
  28. data/lib/datacite/mapping/resource.rb +201 -0
  29. data/lib/datacite/mapping/resource_type.rb +83 -0
  30. data/lib/datacite/mapping/rights.rb +36 -0
  31. data/lib/datacite/mapping/subject.rb +55 -0
  32. data/lib/datacite/mapping/title.rb +69 -0
  33. data/spec/.rubocop.yml +7 -0
  34. data/spec/data/resource.xml +61 -0
  35. data/spec/rspec_custom_matchers.rb +69 -0
  36. data/spec/spec_helper.rb +31 -0
  37. data/spec/unit/datacite/mapping/alternate_identifier_spec.rb +60 -0
  38. data/spec/unit/datacite/mapping/contributor_spec.rb +129 -0
  39. data/spec/unit/datacite/mapping/creator_spec.rb +125 -0
  40. data/spec/unit/datacite/mapping/date_spec.rb +246 -0
  41. data/spec/unit/datacite/mapping/description_spec.rb +89 -0
  42. data/spec/unit/datacite/mapping/geo_location_box_spec.rb +241 -0
  43. data/spec/unit/datacite/mapping/geo_location_point_spec.rb +148 -0
  44. data/spec/unit/datacite/mapping/geo_location_spec.rb +116 -0
  45. data/spec/unit/datacite/mapping/identifier_spec.rb +75 -0
  46. data/spec/unit/datacite/mapping/name_identifier_spec.rb +89 -0
  47. data/spec/unit/datacite/mapping/related_identifier_spec.rb +157 -0
  48. data/spec/unit/datacite/mapping/resource_spec.rb +727 -0
  49. data/spec/unit/datacite/mapping/resource_type_spec.rb +69 -0
  50. data/spec/unit/datacite/mapping/rights_spec.rb +78 -0
  51. data/spec/unit/datacite/mapping/subject_spec.rb +108 -0
  52. data/spec/unit/datacite/mapping/title_spec.rb +113 -0
  53. metadata +262 -0
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+
3
+ module Datacite
4
+ module Mapping
5
+ describe ResourceType do
6
+ describe '#initialize' do
7
+ it 'sets the value' do
8
+ rt = ResourceType.new(resource_type_general: ResourceTypeGeneral::DATASET, value: 'some data')
9
+ expect(rt.value).to eq('some data')
10
+ end
11
+ it 'sets the general resource type' do
12
+ rt = ResourceType.new(resource_type_general: ResourceTypeGeneral::DATASET, value: 'some data')
13
+ expect(rt.resource_type_general).to eq(ResourceTypeGeneral::DATASET)
14
+ end
15
+ it 'allows a nil value' do
16
+ rt = ResourceType.new(resource_type_general: ResourceTypeGeneral::DATASET)
17
+ expect(rt.value).to be_nil
18
+ end
19
+ it 'requires a general resource type' do
20
+ expect { ResourceType.new(value: 'some data') }.to raise_error(ArgumentError)
21
+ end
22
+ end
23
+
24
+ describe 'resourceTypeGeneral=' do
25
+ it 'sets the general resource type' do
26
+ rt = ResourceType.allocate
27
+ rt.resource_type_general = ResourceTypeGeneral::DATASET
28
+ expect(rt.resource_type_general).to eq(ResourceTypeGeneral::DATASET)
29
+ end
30
+ it 'requires a general resource type' do
31
+ rt = ResourceType.new(resource_type_general: ResourceTypeGeneral::DATASET, value: 'some data')
32
+ expect { rt.resource_type_general = nil }.to raise_error(ArgumentError)
33
+ expect(rt.resource_type_general).to eq(ResourceTypeGeneral::DATASET)
34
+ end
35
+ end
36
+
37
+ describe 'value' do
38
+ it 'sets the value' do
39
+ rt = ResourceType.allocate
40
+ rt.value = 'some data'
41
+ expect(rt.value).to eq('some data')
42
+ end
43
+ it 'allows a nil value' do
44
+ rt = ResourceType.new(resource_type_general: ResourceTypeGeneral::DATASET, value: 'some data')
45
+ rt.value = nil
46
+ expect(rt.value).to be_nil
47
+ end
48
+ end
49
+
50
+ describe '#load_from_xml' do
51
+ it 'parses XML' do
52
+ xml_text = '<resourceType resourceTypeGeneral="Software">XML</resourceType>'
53
+ xml = REXML::Document.new(xml_text).root
54
+ rt = ResourceType.load_from_xml(xml)
55
+ expect(rt.resource_type_general).to eq(ResourceTypeGeneral::SOFTWARE)
56
+ expect(rt.value).to eq('XML')
57
+ end
58
+ end
59
+
60
+ describe '#save_to_xml' do
61
+ it 'writes XML' do
62
+ rt = ResourceType.new(resource_type_general: ResourceTypeGeneral::DATASET, value: 'some data')
63
+ expected_xml = '<resourceType resourceTypeGeneral="Dataset">some data</resourceType>'
64
+ expect(rt.save_to_xml).to be_xml(expected_xml)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,78 @@
1
+ require 'spec_helper'
2
+
3
+ module Datacite
4
+ module Mapping
5
+ describe Rights do
6
+ describe '#initialize' do
7
+ it 'sets the value' do
8
+ rights = Rights.new(value: 'CC0 1.0 Universal')
9
+ expect(rights.value).to eq('CC0 1.0 Universal')
10
+ end
11
+ it 'sets the URI' do
12
+ rights = Rights.new(value: 'CC0 1.0 Universal', uri: URI('http://creativecommons.org/publicdomain/zero/1.0/'))
13
+ expect(rights.uri).to eq(URI('http://creativecommons.org/publicdomain/zero/1.0/'))
14
+ end
15
+ it 'requires a value' do
16
+ expect { Rights.new(uri: URI('http://creativecommons.org/publicdomain/zero/1.0/')) }.to raise_error(ArgumentError)
17
+ end
18
+ end
19
+
20
+ describe '#value=' do
21
+ it 'sets the value' do
22
+ rights = Rights.allocate
23
+ rights.value = 'CC0 1.0 Universal'
24
+ expect(rights.value).to eq('CC0 1.0 Universal')
25
+ end
26
+ it 'requires a value' do
27
+ rights = Rights.new(value: 'CC0 1.0 Universal')
28
+ expect { rights.value = nil }.to raise_error(ArgumentError)
29
+ expect(rights.value).to eq('CC0 1.0 Universal')
30
+ end
31
+ it 'requires a non-empty value' do
32
+ rights = Rights.new(value: 'CC0 1.0 Universal')
33
+ expect { rights.value = '' }.to raise_error(ArgumentError)
34
+ expect(rights.value).to eq('CC0 1.0 Universal')
35
+ end
36
+ end
37
+
38
+ describe '#uri=' do
39
+ it 'sets the URI' do
40
+ rights = Rights.allocate
41
+ rights.uri = URI('http://creativecommons.org/publicdomain/zero/1.0/')
42
+ expect(rights.uri).to eq(URI('http://creativecommons.org/publicdomain/zero/1.0/'))
43
+ end
44
+ it 'allows a nil URI' do
45
+ rights = Rights.new(value: 'CC0 1.0 Universal', uri: URI('http://creativecommons.org/publicdomain/zero/1.0/'))
46
+ rights.uri = nil
47
+ expect(rights.uri).to be_nil
48
+ end
49
+ end
50
+
51
+ describe '#load_from_xml' do
52
+ it 'reads XML' do
53
+ xml_text = '<rights rightsURI="http://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 Universal</rights>'
54
+ xml = REXML::Document.new(xml_text).root
55
+ rights = Rights.load_from_xml(xml)
56
+ expect(rights.value).to eq('CC0 1.0 Universal')
57
+ expect(rights.uri).to eq(URI('http://creativecommons.org/publicdomain/zero/1.0/'))
58
+ end
59
+ it 'trims the value' do
60
+ xml_text = '<rights>
61
+ CC0 1.0 Universal
62
+ </rights>'
63
+ xml = REXML::Document.new(xml_text).root
64
+ rights = Rights.load_from_xml(xml)
65
+ expect(rights.value).to eq('CC0 1.0 Universal')
66
+ end
67
+ end
68
+
69
+ describe '#save_to_xml' do
70
+ it 'writes XML' do
71
+ rights = Rights.new(value: 'CC0 1.0 Universal', uri: URI('http://creativecommons.org/publicdomain/zero/1.0/'))
72
+ expected_xml = '<rights rightsURI="http://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 Universal</rights>'
73
+ expect(rights.save_to_xml).to be_xml(expected_xml)
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,108 @@
1
+ require 'spec_helper'
2
+
3
+ module Datacite
4
+ module Mapping
5
+ describe Subject do
6
+ describe '#initialize' do
7
+ it 'sets the value' do
8
+ value = 'Mammals--Embryology'
9
+ subject = Subject.new(value: value, language: 'en-us')
10
+ expect(subject.value).to eq(value)
11
+ end
12
+
13
+ it 'sets the language' do
14
+ lang = 'en-us'
15
+ subject = Subject.new(value: 'Mammals--Embryology', language: lang)
16
+ expect(subject.language).to eq(lang)
17
+ end
18
+
19
+ it 'sets the scheme' do
20
+ scheme = 'LCSH'
21
+ subject = Subject.new(value: 'Mammals--Embryology', language: 'en-us', scheme: scheme)
22
+ expect(subject.scheme).to eq(scheme)
23
+ end
24
+
25
+ it 'sets the schemeURI' do
26
+ scheme_uri = URI('http://id.loc.gov/authorities/subjects')
27
+ subject = Subject.new(value: 'Mammals--Embryology', language: 'en-us', scheme: 'LCSH', scheme_uri: scheme_uri)
28
+ expect(subject.scheme_uri).to eq(scheme_uri)
29
+ end
30
+
31
+ it 'defaults to a nil scheme' do
32
+ subject = Subject.new(value: 'Mammals--Embryology', language: 'en-us')
33
+ expect(subject.scheme).to be_nil
34
+ end
35
+
36
+ it 'defaults to a nil schemeURI' do
37
+ subject = Subject.new(value: 'Mammals--Embryology', language: 'en-us')
38
+ expect(subject.scheme_uri).to be_nil
39
+ end
40
+
41
+ it 'defaults language to "en"' do
42
+ subject = Subject.new(value: 'Mammals--Embryology')
43
+ expect(subject.language).to eq('en')
44
+ end
45
+
46
+ end
47
+
48
+ describe 'lang=' do
49
+ it 'sets the language' do
50
+ subject = Subject.new(value: 'Mammals--Embryology', language: 'en')
51
+ new_lang = 'en-us'
52
+ subject.language = new_lang
53
+ expect(subject.language).to eq(new_lang)
54
+ end
55
+
56
+ it 'ignores nil' do
57
+ subject = Subject.new(value: 'Mammals--Embryology', language: 'en-us')
58
+ subject.language = nil
59
+ expect(subject.language).to eq('en-us')
60
+ end
61
+ end
62
+
63
+ describe '#load_from_xml' do
64
+ it 'parses XML' do
65
+ xml_text = '<subject xml:lang="en-us" schemeURI="http://id.loc.gov/authorities/subjects" subjectScheme="LCSH">Mammals--Embryology</subject>'
66
+ xml = REXML::Document.new(xml_text).root
67
+ subject = Subject.load_from_xml(xml)
68
+
69
+ value = 'Mammals--Embryology'
70
+ lang = 'en-us'
71
+ scheme = 'LCSH'
72
+ scheme_uri = URI('http://id.loc.gov/authorities/subjects')
73
+
74
+ expect(subject.value).to eq(value)
75
+ expect(subject.language).to eq(lang)
76
+ expect(subject.scheme).to eq(scheme)
77
+ expect(subject.scheme_uri).to eq(scheme_uri)
78
+ end
79
+
80
+ it 'treats missing language as en' do
81
+ xml_text = '<subject schemeURI="http://id.loc.gov/authorities/subjects" subjectScheme="LCSH">Mammals--Embryology</subject>'
82
+ xml = REXML::Document.new(xml_text).root
83
+ subject = Subject.load_from_xml(xml)
84
+ expect(subject.language).to eq('en')
85
+ end
86
+ end
87
+
88
+ describe '#save_to_xml' do
89
+ it 'writes XML' do
90
+ value = 'Mammals--Embryology'
91
+ lang = 'en-us'
92
+ scheme = 'LCSH'
93
+ scheme_uri = URI('http://id.loc.gov/authorities/subjects')
94
+
95
+ subject = Subject.new(
96
+ language: lang,
97
+ scheme: scheme,
98
+ scheme_uri: scheme_uri,
99
+ value: value
100
+ )
101
+
102
+ expected_xml = '<subject xml:lang="en-us" schemeURI="http://id.loc.gov/authorities/subjects" subjectScheme="LCSH">Mammals--Embryology</subject>'
103
+ expect(subject.save_to_xml).to be_xml(expected_xml)
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,113 @@
1
+ require 'spec_helper'
2
+
3
+ module Datacite
4
+ module Mapping
5
+ describe Title do
6
+ describe '#initialize' do
7
+ it 'sets the value' do
8
+ value = 'An Account of a Very Odd Monstrous Calf'
9
+ title = Title.new(value: value, language: 'en-emodeng')
10
+ expect(title.value).to eq(value)
11
+ end
12
+
13
+ it 'sets the language' do
14
+ lang = 'en-emodeng'
15
+ title = Title.new(language: lang, value: 'Observables upon a Monstrous Head')
16
+ expect(title.language).to eq(lang)
17
+ end
18
+
19
+ it 'defaults language to "en"' do
20
+ title = Title.new(value: 'A Relation of an Accident by Thunder and Lightning, at Oxford')
21
+ expect(title.language).to eq('en')
22
+ end
23
+
24
+ it 'sets the type' do
25
+ type = TitleType::SUBTITLE
26
+ title = Title.new(type: type, value: 'And a Contest between Two Artists about Optick Glasses, &c', language: 'en-emodeng')
27
+ expect(title.type).to eq(type)
28
+ end
29
+
30
+ it 'defaults to a nil type' do
31
+ title = Title.new(value: "Of Some Books Lately Publish't", language: 'en-emodeng')
32
+ expect(title.type).to be_nil
33
+ end
34
+ end
35
+
36
+ describe 'value=' do
37
+ it 'sets the value' do
38
+ title = Title.allocate
39
+ title.value = "Of Some Books Lately Publish't"
40
+ expect(title.value).to eq("Of Some Books Lately Publish't")
41
+ end
42
+ it 'requires a value' do
43
+ title = Title.new(value: "Of Some Books Lately Publish't", language: 'en-emodeng')
44
+ expect { title.value = nil }.to raise_error(ArgumentError)
45
+ expect(title.value).to eq("Of Some Books Lately Publish't")
46
+ end
47
+ it 'requires a non-empty value' do
48
+ title = Title.new(value: "Of Some Books Lately Publish't", language: 'en-emodeng')
49
+ expect { title.value = '' }.to raise_error(ArgumentError)
50
+ expect(title.value).to eq("Of Some Books Lately Publish't")
51
+ end
52
+ end
53
+
54
+ describe 'lang=' do
55
+ it 'sets the language' do
56
+ title = Title.new(value: "Of Some Books Lately Publish't", language: 'en-emodeng')
57
+ new_lang = 'en-gb'
58
+ title.language = new_lang
59
+ expect(title.language).to eq(new_lang)
60
+ end
61
+ it 'ignores nil' do
62
+ title = Title.new(value: "Of Some Books Lately Publish't", language: 'en-emodeng')
63
+ title.language = nil
64
+ expect(title.language).to eq('en-emodeng')
65
+ end
66
+ end
67
+
68
+ describe '#load_from_xml' do
69
+ it 'parses XML' do
70
+ xml_text = '<title xml:lang="en-emodeng" titleType="Subtitle">Together with an Appendix of the Same, Containing an Answer to Some Objections, Made by Severall Persons against That Hypothesis</title>'
71
+ xml = REXML::Document.new(xml_text).root
72
+ title = Title.load_from_xml(xml)
73
+
74
+ expected_lang = 'en-emodeng'
75
+ expected_type = TitleType::SUBTITLE
76
+ expected_value = 'Together with an Appendix of the Same, Containing an Answer to Some Objections, Made by Severall Persons against That Hypothesis'
77
+
78
+ expect(title.language).to eq(expected_lang)
79
+ expect(title.type).to eq(expected_type)
80
+ expect(title.value).to eq(expected_value)
81
+ end
82
+
83
+ it 'treats missing language as en' do
84
+ xml_text = '<title>Physical oceanography from BT during cruise U99XX00542B_1979</title>'
85
+ xml = REXML::Document.new(xml_text).root
86
+ title = Title.load_from_xml(xml)
87
+ expect(title.language).to eq('en')
88
+ end
89
+
90
+ it 'trims the value' do
91
+ xml_text = '<title>
92
+ Physical oceanography from BT during cruise U99XX00542B_1979
93
+ </title>'
94
+ xml = REXML::Document.new(xml_text).root
95
+ title = Title.load_from_xml(xml)
96
+ expect(title.value).to eq('Physical oceanography from BT during cruise U99XX00542B_1979')
97
+ end
98
+ end
99
+
100
+ describe '#save_to_xml' do
101
+ it 'writes XML' do
102
+ title = Title.new(
103
+ language: 'en-emodeng',
104
+ type: TitleType::SUBTITLE,
105
+ value: 'Together with an Appendix of the Same, Containing an Answer to Some Objections, Made by Severall Persons against That Hypothesis'
106
+ )
107
+ expected_xml = '<title xml:lang="en-emodeng" titleType="Subtitle">Together with an Appendix of the Same, Containing an Answer to Some Objections, Made by Severall Persons against That Hypothesis</title>'
108
+ expect(title.save_to_xml).to be_xml(expected_xml)
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
metadata ADDED
@@ -0,0 +1,262 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: datacite-mapping
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - David Moles
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: typesafe_enum
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.1.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.1.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: xml-mapping_extensions
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.3'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.7'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.7'
61
+ - !ruby/object:Gem::Dependency
62
+ name: equivalent-xml
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 0.6.0
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 0.6.0
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '10.4'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '10.4'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rspec
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.2'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.2'
103
+ - !ruby/object:Gem::Dependency
104
+ name: simplecov
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.9.2
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 0.9.2
117
+ - !ruby/object:Gem::Dependency
118
+ name: simplecov-console
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 0.2.0
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 0.2.0
131
+ - !ruby/object:Gem::Dependency
132
+ name: rubocop
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 0.32.1
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 0.32.1
145
+ - !ruby/object:Gem::Dependency
146
+ name: yard
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.8'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '0.8'
159
+ description: A gem for working with the Datacite XML format
160
+ email:
161
+ - david.moles@ucop.edu
162
+ executables: []
163
+ extensions: []
164
+ extra_rdoc_files: []
165
+ files:
166
+ - ".gitignore"
167
+ - ".rubocop.yml"
168
+ - ".ruby-version"
169
+ - ".travis.yml"
170
+ - ".yardopts"
171
+ - CHANGES.md
172
+ - Gemfile
173
+ - LICENSE.md
174
+ - README.md
175
+ - Rakefile
176
+ - datacite-mapping.gemspec
177
+ - examples/reading.rb
178
+ - examples/writing.rb
179
+ - lib/datacite/mapping.rb
180
+ - lib/datacite/mapping/alternate_identifier.rb
181
+ - lib/datacite/mapping/contributor.rb
182
+ - lib/datacite/mapping/creator.rb
183
+ - lib/datacite/mapping/date.rb
184
+ - lib/datacite/mapping/description.rb
185
+ - lib/datacite/mapping/geo_location.rb
186
+ - lib/datacite/mapping/geo_location_box.rb
187
+ - lib/datacite/mapping/geo_location_point.rb
188
+ - lib/datacite/mapping/identifier.rb
189
+ - lib/datacite/mapping/module_info.rb
190
+ - lib/datacite/mapping/name_identifier.rb
191
+ - lib/datacite/mapping/related_identifier.rb
192
+ - lib/datacite/mapping/resource.rb
193
+ - lib/datacite/mapping/resource_type.rb
194
+ - lib/datacite/mapping/rights.rb
195
+ - lib/datacite/mapping/subject.rb
196
+ - lib/datacite/mapping/title.rb
197
+ - spec/.rubocop.yml
198
+ - spec/data/resource.xml
199
+ - spec/rspec_custom_matchers.rb
200
+ - spec/spec_helper.rb
201
+ - spec/unit/datacite/mapping/alternate_identifier_spec.rb
202
+ - spec/unit/datacite/mapping/contributor_spec.rb
203
+ - spec/unit/datacite/mapping/creator_spec.rb
204
+ - spec/unit/datacite/mapping/date_spec.rb
205
+ - spec/unit/datacite/mapping/description_spec.rb
206
+ - spec/unit/datacite/mapping/geo_location_box_spec.rb
207
+ - spec/unit/datacite/mapping/geo_location_point_spec.rb
208
+ - spec/unit/datacite/mapping/geo_location_spec.rb
209
+ - spec/unit/datacite/mapping/identifier_spec.rb
210
+ - spec/unit/datacite/mapping/name_identifier_spec.rb
211
+ - spec/unit/datacite/mapping/related_identifier_spec.rb
212
+ - spec/unit/datacite/mapping/resource_spec.rb
213
+ - spec/unit/datacite/mapping/resource_type_spec.rb
214
+ - spec/unit/datacite/mapping/rights_spec.rb
215
+ - spec/unit/datacite/mapping/subject_spec.rb
216
+ - spec/unit/datacite/mapping/title_spec.rb
217
+ homepage: http://github.com/CDLUC3/datacite-mapping
218
+ licenses:
219
+ - MIT
220
+ metadata: {}
221
+ post_install_message:
222
+ rdoc_options: []
223
+ require_paths:
224
+ - lib
225
+ required_ruby_version: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ required_rubygems_version: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ requirements: []
236
+ rubyforge_project:
237
+ rubygems_version: 2.4.5.1
238
+ signing_key:
239
+ specification_version: 4
240
+ summary: Parses and generates Datacite XML documents
241
+ test_files:
242
+ - spec/.rubocop.yml
243
+ - spec/data/resource.xml
244
+ - spec/rspec_custom_matchers.rb
245
+ - spec/spec_helper.rb
246
+ - spec/unit/datacite/mapping/alternate_identifier_spec.rb
247
+ - spec/unit/datacite/mapping/contributor_spec.rb
248
+ - spec/unit/datacite/mapping/creator_spec.rb
249
+ - spec/unit/datacite/mapping/date_spec.rb
250
+ - spec/unit/datacite/mapping/description_spec.rb
251
+ - spec/unit/datacite/mapping/geo_location_box_spec.rb
252
+ - spec/unit/datacite/mapping/geo_location_point_spec.rb
253
+ - spec/unit/datacite/mapping/geo_location_spec.rb
254
+ - spec/unit/datacite/mapping/identifier_spec.rb
255
+ - spec/unit/datacite/mapping/name_identifier_spec.rb
256
+ - spec/unit/datacite/mapping/related_identifier_spec.rb
257
+ - spec/unit/datacite/mapping/resource_spec.rb
258
+ - spec/unit/datacite/mapping/resource_type_spec.rb
259
+ - spec/unit/datacite/mapping/rights_spec.rb
260
+ - spec/unit/datacite/mapping/subject_spec.rb
261
+ - spec/unit/datacite/mapping/title_spec.rb
262
+ has_rdoc: