datacite-mapping 0.1.0

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