datacite-mapping 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -53,22 +53,22 @@ module Datacite
53
53
  describe '#identifier' do
54
54
  it 'requires an identifier' do
55
55
  args.delete(:identifier)
56
- expect { Resource.new(args) }.to raise_error(ArgumentError)
56
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
57
57
  end
58
58
 
59
59
  it 'requires a non-nil identifier' do
60
60
  args[:identifier] = nil
61
- expect { Resource.new(args) }.to raise_error(ArgumentError)
61
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
62
62
  end
63
63
 
64
64
  it 'can be initialized' do
65
- resource = Resource.new(args)
65
+ resource = Resource.new(**args)
66
66
  expect(resource.identifier).to eq(identifier)
67
67
  end
68
68
 
69
69
  it 'can be set' do
70
70
  new_id = Identifier.new(value: '10.1594/WDCC/CCSRNIES_SRES_B2')
71
- resource = Resource.new(args)
71
+ resource = Resource.new(**args)
72
72
  resource.identifier = new_id
73
73
  expect(resource.identifier).to eq(new_id)
74
74
  end
@@ -78,21 +78,21 @@ module Datacite
78
78
 
79
79
  it 'requires a creator list' do
80
80
  args.delete(:creators)
81
- expect { Resource.new(args) }.to raise_error(ArgumentError)
81
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
82
82
  end
83
83
 
84
84
  it 'requires a non-nil creator list' do
85
85
  args[:creators] = nil
86
- expect { Resource.new(args) }.to raise_error(ArgumentError)
86
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
87
87
  end
88
88
 
89
89
  it 'requires a non-empty creator list' do
90
90
  args[:creators] = []
91
- expect { Resource.new(args) }.to raise_error(ArgumentError)
91
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
92
92
  end
93
93
 
94
94
  it 'can be initialized' do
95
- resource = Resource.new(args)
95
+ resource = Resource.new(**args)
96
96
  expect(resource.creators).to eq(creators)
97
97
  end
98
98
 
@@ -102,7 +102,7 @@ module Datacite
102
102
  identifier: NameIdentifier.new(scheme: 'ISNI', scheme_uri: URI('http://isni.org/'), value: '0000 0001 1678 4522'),
103
103
  affiliations: ['Disney–ABC Television Group']
104
104
  )]
105
- resource = Resource.new(args)
105
+ resource = Resource.new(**args)
106
106
  resource.creators = new_creators
107
107
  expect(resource.creators).to eq(new_creators)
108
108
  end
@@ -110,7 +110,7 @@ module Datacite
110
110
  describe 'creator convenience methods' do
111
111
  describe '#creator_names' do
112
112
  it 'extracts the creator names' do
113
- resource = Resource.new(args)
113
+ resource = Resource.new(**args)
114
114
  expect(resource.creator_names)
115
115
  .to eq(['Hedy Lamarr', 'Herschlag, Natalie'])
116
116
  end
@@ -118,7 +118,7 @@ module Datacite
118
118
 
119
119
  describe '#creator_affiliations' do
120
120
  it 'extracts the creator affiliations' do
121
- resource = Resource.new(args)
121
+ resource = Resource.new(**args)
122
122
  expect(resource.creator_affiliations)
123
123
  .to eq([
124
124
  ['United Artists', 'Metro-Goldwyn-Mayer'],
@@ -132,21 +132,21 @@ module Datacite
132
132
  describe '#titles' do
133
133
  it 'requires a title list' do
134
134
  args.delete(:titles)
135
- expect { Resource.new(args) }.to raise_error(ArgumentError)
135
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
136
136
  end
137
137
 
138
138
  it 'requires a non-nil title list' do
139
139
  args[:titles] = nil
140
- expect { Resource.new(args) }.to raise_error(ArgumentError)
140
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
141
141
  end
142
142
 
143
143
  it 'requires a non-empty title list' do
144
144
  args[:titles] = []
145
- expect { Resource.new(args) }.to raise_error(ArgumentError)
145
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
146
146
  end
147
147
 
148
148
  it 'can be initialized' do
149
- resource = Resource.new(args)
149
+ resource = Resource.new(**args)
150
150
  expect(resource.titles).to eq(titles)
151
151
  end
152
152
 
@@ -156,7 +156,7 @@ module Datacite
156
156
  type: TitleType::SUBTITLE,
157
157
  value: 'Together with an Appendix of the Same, Containing an Answer to Some Objections, Made by Severall Persons against That Hypothesis'
158
158
  )]
159
- resource = Resource.new(args)
159
+ resource = Resource.new(**args)
160
160
  resource.titles = new_titles
161
161
  expect(resource.titles).to eq(new_titles)
162
162
  end
@@ -166,22 +166,22 @@ module Datacite
166
166
  describe '#publisher' do
167
167
  it 'requires a publisher' do
168
168
  args.delete(:publisher)
169
- expect { Resource.new(args) }.to raise_error(ArgumentError)
169
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
170
170
  end
171
171
  it 'requires a non-nil publisher' do
172
172
  args[:publisher] = nil
173
- expect { Resource.new(args) }.to raise_error(ArgumentError)
173
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
174
174
  end
175
175
  it 'requires a non-blank publisher' do
176
176
  expect { Publisher.new(value: ' ') }.to raise_error(ArgumentError)
177
177
  end
178
178
  it 'can be initialized' do
179
- resource = Resource.new(args)
179
+ resource = Resource.new(**args)
180
180
  expect(resource.publisher.value).to eq(publisher)
181
181
  end
182
182
  it 'can be set' do
183
183
  new_publisher = 'University of California'
184
- resource = Resource.new(args)
184
+ resource = Resource.new(**args)
185
185
  resource.publisher = new_publisher
186
186
  expect(resource.publisher.value).to eq(new_publisher)
187
187
  end
@@ -189,11 +189,11 @@ module Datacite
189
189
  args[:publisher] = Publisher.new(value: '
190
190
  University of California
191
191
  ')
192
- resource = Resource.new(args)
192
+ resource = Resource.new(**args)
193
193
  expect(resource.publisher.value).to eq('University of California')
194
194
  end
195
195
  it 'strips on set' do
196
- resource = Resource.new(args)
196
+ resource = Resource.new(**args)
197
197
  resource.publisher = Publisher.new(value: '
198
198
  University of California
199
199
  ')
@@ -204,31 +204,31 @@ module Datacite
204
204
  describe '#publication_year' do
205
205
  it 'requires a publication_year' do
206
206
  args.delete(:publication_year)
207
- expect { Resource.new(args) }.to raise_error(ArgumentError)
207
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
208
208
  end
209
209
  it 'requires a non-nil publication_year' do
210
210
  args[:publication_year] = nil
211
- expect { Resource.new(args) }.to raise_error(ArgumentError)
211
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
212
212
  end
213
213
  it 'requires a four-digit publication_year' do
214
214
  args[:publication_year] = 999
215
- expect { Resource.new(args) }.to raise_error(ArgumentError)
215
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
216
216
  args[:publication_year] = 10_000
217
- expect { Resource.new(args) }.to raise_error(ArgumentError)
217
+ expect { Resource.new(**args) }.to raise_error(ArgumentError)
218
218
  end
219
219
  it 'can be initialized' do
220
- resource = Resource.new(args)
220
+ resource = Resource.new(**args)
221
221
  expect(resource.publication_year).to eq(publication_year)
222
222
  end
223
223
  it 'can be set' do
224
224
  new_pub_year = 1963
225
- resource = Resource.new(args)
225
+ resource = Resource.new(**args)
226
226
  resource.publication_year = new_pub_year
227
227
  expect(resource.publication_year).to eq(new_pub_year)
228
228
  end
229
229
  it 'converts strings to integers' do
230
230
  new_pub_year = 1963
231
- resource = Resource.new(args)
231
+ resource = Resource.new(**args)
232
232
  resource.publication_year = new_pub_year.to_s
233
233
  expect(resource.publication_year).to eq(new_pub_year)
234
234
  end
@@ -236,7 +236,7 @@ module Datacite
236
236
 
237
237
  describe '#subjects' do
238
238
  it 'defaults to empty' do
239
- resource = Resource.new(args)
239
+ resource = Resource.new(**args)
240
240
  expect(resource.subjects).to eq([])
241
241
  end
242
242
 
@@ -257,12 +257,12 @@ module Datacite
257
257
  )
258
258
  ]
259
259
  args[:subjects] = subjects
260
- resource = Resource.new(args)
260
+ resource = Resource.new(**args)
261
261
  expect(resource.subjects).to eq(subjects)
262
262
  end
263
263
  it 'can\'t be initialized to nil' do
264
264
  args[:subjects] = nil
265
- resource = Resource.new(args)
265
+ resource = Resource.new(**args)
266
266
  expect(resource.subjects).to eq([])
267
267
  end
268
268
 
@@ -273,7 +273,7 @@ module Datacite
273
273
  Subject.allocate
274
274
  ]
275
275
  args[:subjects] = subjects
276
- resource = Resource.new(args)
276
+ resource = Resource.new(**args)
277
277
  expect(resource.subjects).to eq([subjects[1]])
278
278
  end
279
279
  end
@@ -294,12 +294,12 @@ module Datacite
294
294
  value: '571.8 Croissance, développement, reproduction biologique (fécondation, sexualité)'
295
295
  )
296
296
  ]
297
- resource = Resource.new(args)
297
+ resource = Resource.new(**args)
298
298
  resource.subjects = subjects
299
299
  expect(resource.subjects).to eq(subjects)
300
300
  end
301
301
  it 'can\'t be set to nil' do
302
- resource = Resource.new(args)
302
+ resource = Resource.new(**args)
303
303
  resource.subjects = nil
304
304
  expect(resource.subjects).to eq([])
305
305
  end
@@ -309,7 +309,7 @@ module Datacite
309
309
  Subject.new(value: 'Mammals--Embryology'),
310
310
  Subject.allocate
311
311
  ]
312
- resource = Resource.new(args)
312
+ resource = Resource.new(**args)
313
313
  resource.subjects = subjects
314
314
  expect(resource.subjects).to eq([subjects[1]])
315
315
  end
@@ -318,7 +318,7 @@ module Datacite
318
318
 
319
319
  describe '#funding_references' do
320
320
  it 'defaults to empty' do
321
- resource = Resource.new(args)
321
+ resource = Resource.new(**args)
322
322
  expect(resource.funding_references).to eq([])
323
323
  end
324
324
 
@@ -329,19 +329,19 @@ module Datacite
329
329
  FundingReference.new(name: 'НИИЧАВО', award_number: '164070')
330
330
  ]
331
331
  args[:funding_references] = funding_references
332
- resource = Resource.new(args)
332
+ resource = Resource.new(**args)
333
333
  expect(resource.funding_references).to eq(funding_references)
334
334
  end
335
335
  it 'can\'t be initialized to nil' do
336
336
  args[:funding_references] = nil
337
- resource = Resource.new(args)
337
+ resource = Resource.new(**args)
338
338
  expect(resource.funding_references).to eq([])
339
339
  end
340
340
  end
341
341
 
342
342
  describe '#funding_references=' do
343
343
  it 'can be set' do
344
- resource = Resource.new(args)
344
+ resource = Resource.new(**args)
345
345
  funding_references = [
346
346
  FundingReference.new(name: 'Ministry of Magic', award_number: '9¾'),
347
347
  FundingReference.new(name: 'НИИЧАВО', award_number: '164070')
@@ -350,7 +350,7 @@ module Datacite
350
350
  expect(resource.funding_references).to eq(funding_references)
351
351
  end
352
352
  it 'can\'t be set to nil' do
353
- resource = Resource.new(args)
353
+ resource = Resource.new(**args)
354
354
  resource.funding_references = nil
355
355
  expect(resource.funding_references).to eq([])
356
356
  end
@@ -359,18 +359,18 @@ module Datacite
359
359
 
360
360
  describe '#language' do
361
361
  it 'defaults to nil' do
362
- resource = Resource.new(args)
362
+ resource = Resource.new(**args)
363
363
  expect(resource.language).to be_nil
364
364
  end
365
365
 
366
366
  it 'can be initialized' do
367
367
  args[:language] = 'en-emodeng'
368
- resource = Resource.new(args)
368
+ resource = Resource.new(**args)
369
369
  expect(resource.language).to eq('en-emodeng')
370
370
  end
371
371
 
372
372
  it 'can be set' do
373
- resource = Resource.new(args)
373
+ resource = Resource.new(**args)
374
374
  resource.language = 'en-emodeng'
375
375
  expect(resource.language).to eq('en-emodeng')
376
376
  end
@@ -379,7 +379,7 @@ module Datacite
379
379
  describe '#contributors' do
380
380
 
381
381
  it 'defaults to empty' do
382
- resource = Resource.new(args)
382
+ resource = Resource.new(**args)
383
383
  expect(resource.funding_references).to eq([])
384
384
  end
385
385
 
@@ -390,19 +390,19 @@ module Datacite
390
390
  Contributor.new(name: 'Hedy Lamarr', type: ContributorType::RESEARCHER)
391
391
  ]
392
392
  args[:contributors] = contributors
393
- resource = Resource.new(args)
393
+ resource = Resource.new(**args)
394
394
  expect(resource.contributors).to eq(contributors)
395
395
  end
396
396
  it 'can\'t be initialized to nil' do
397
397
  args[:contributors] = nil
398
- resource = Resource.new(args)
398
+ resource = Resource.new(**args)
399
399
  expect(resource.contributors).to eq([])
400
400
  end
401
401
  end
402
402
 
403
403
  describe '#contributors=' do
404
404
  it 'can be set' do
405
- resource = Resource.new(args)
405
+ resource = Resource.new(**args)
406
406
  contributors = [
407
407
  Contributor.new(name: 'Hershlag, Natalie', type: ContributorType::PROJECT_MEMBER),
408
408
  Contributor.new(name: 'Hedy Lamarr', type: ContributorType::RESEARCHER)
@@ -411,7 +411,7 @@ module Datacite
411
411
  expect(resource.contributors).to eq(contributors)
412
412
  end
413
413
  it 'can\'t be set to nil' do
414
- resource = Resource.new(args)
414
+ resource = Resource.new(**args)
415
415
  resource.contributors = nil
416
416
  expect(resource.contributors).to eq([])
417
417
  end
@@ -419,7 +419,7 @@ module Datacite
419
419
 
420
420
  describe 'contributor convenience methods' do
421
421
  before(:each) do
422
- @resource = Resource.new(args)
422
+ @resource = Resource.new(**args)
423
423
  @funder = Contributor.new(
424
424
  name: 'The Ministry of Magic',
425
425
  identifier: NameIdentifier.new(
@@ -460,7 +460,7 @@ module Datacite
460
460
 
461
461
  describe '#dates' do
462
462
  it 'defaults to empty' do
463
- resource = Resource.new(args)
463
+ resource = Resource.new(**args)
464
464
  expect(resource.funding_references).to eq([])
465
465
  end
466
466
 
@@ -471,19 +471,19 @@ module Datacite
471
471
  Date.new(value: '1914-08-04T11:01:06.0123+01:00', type: DateType::AVAILABLE)
472
472
  ]
473
473
  args[:dates] = dates
474
- resource = Resource.new(args)
474
+ resource = Resource.new(**args)
475
475
  expect(resource.dates).to eq(dates)
476
476
  end
477
477
  it 'can\'t be initialized to nil' do
478
478
  args[:dates] = nil
479
- resource = Resource.new(args)
479
+ resource = Resource.new(**args)
480
480
  expect(resource.dates).to eq([])
481
481
  end
482
482
  end
483
483
 
484
484
  describe '#dates=' do
485
485
  it 'can be set' do
486
- resource = Resource.new(args)
486
+ resource = Resource.new(**args)
487
487
  dates = [
488
488
  Date.new(value: DateTime.new(1914, 8, 4, 11, 0o1, 6.0123, '+1'), type: DateType::AVAILABLE),
489
489
  Date.new(value: '1914-08-04T11:01:06.0123+01:00', type: DateType::AVAILABLE)
@@ -492,7 +492,7 @@ module Datacite
492
492
  expect(resource.dates).to eq(dates)
493
493
  end
494
494
  it 'can\'t be set to nil' do
495
- resource = Resource.new(args)
495
+ resource = Resource.new(**args)
496
496
  resource.dates = nil
497
497
  expect(resource.dates).to eq([])
498
498
  end
@@ -503,13 +503,13 @@ module Datacite
503
503
  it 'can be initialized' do
504
504
  resource_type = ResourceType.new(resource_type_general: ResourceTypeGeneral::DATASET, value: 'Dataset')
505
505
  args[:resource_type] = resource_type
506
- resource = Resource.new(args)
506
+ resource = Resource.new(**args)
507
507
  expect(resource.resource_type).to eq(resource_type)
508
508
  end
509
509
 
510
510
  it 'can be set' do
511
511
  resource_type = ResourceType.new(resource_type_general: ResourceTypeGeneral::DATASET, value: 'Dataset')
512
- resource = Resource.new(args)
512
+ resource = Resource.new(**args)
513
513
  resource.resource_type = resource_type
514
514
  expect(resource.resource_type).to eq(resource_type)
515
515
  end
@@ -517,7 +517,7 @@ module Datacite
517
517
 
518
518
  describe '#alternate_identifiers' do
519
519
  it 'defaults to empty' do
520
- resource = Resource.new(args)
520
+ resource = Resource.new(**args)
521
521
  expect(resource.alternate_identifiers).to eq([])
522
522
  end
523
523
 
@@ -528,19 +528,19 @@ module Datacite
528
528
  AlternateIdentifier.new(type: 'URL', value: 'http://example.com')
529
529
  ]
530
530
  args[:alternate_identifiers] = alternate_identifiers
531
- resource = Resource.new(args)
531
+ resource = Resource.new(**args)
532
532
  expect(resource.alternate_identifiers).to eq(alternate_identifiers)
533
533
  end
534
534
  it 'can\'t be initialized to nil' do
535
535
  args[:alternate_identifiers] = nil
536
- resource = Resource.new(args)
536
+ resource = Resource.new(**args)
537
537
  expect(resource.alternate_identifiers).to eq([])
538
538
  end
539
539
  end
540
540
 
541
541
  describe '#alternate_identifiers=' do
542
542
  it 'can be set' do
543
- resource = Resource.new(args)
543
+ resource = Resource.new(**args)
544
544
  alternate_identifiers = [
545
545
  AlternateIdentifier.new(type: 'URL', value: 'http://example.org'),
546
546
  AlternateIdentifier.new(type: 'URL', value: 'http://example.com')
@@ -549,7 +549,7 @@ module Datacite
549
549
  expect(resource.alternate_identifiers).to eq(alternate_identifiers)
550
550
  end
551
551
  it 'can\'t be set to nil' do
552
- resource = Resource.new(args)
552
+ resource = Resource.new(**args)
553
553
  resource.alternate_identifiers = nil
554
554
  expect(resource.alternate_identifiers).to eq([])
555
555
  end
@@ -558,7 +558,7 @@ module Datacite
558
558
 
559
559
  describe '#related_identifiers' do
560
560
  it 'defaults to empty' do
561
- resource = Resource.new(args)
561
+ resource = Resource.new(**args)
562
562
  expect(resource.related_identifiers).to eq([])
563
563
  end
564
564
 
@@ -580,19 +580,19 @@ module Datacite
580
580
  )
581
581
  ]
582
582
  args[:related_identifiers] = related_identifiers
583
- resource = Resource.new(args)
583
+ resource = Resource.new(**args)
584
584
  expect(resource.related_identifiers).to eq(related_identifiers)
585
585
  end
586
586
  it 'can\'t be initialized to nil' do
587
587
  args[:related_identifiers] = nil
588
- resource = Resource.new(args)
588
+ resource = Resource.new(**args)
589
589
  expect(resource.related_identifiers).to eq([])
590
590
  end
591
591
  end
592
592
 
593
593
  describe '#related_identifiers=' do
594
594
  it 'can be set' do
595
- resource = Resource.new(args)
595
+ resource = Resource.new(**args)
596
596
  related_identifiers = [
597
597
  RelatedIdentifier.new(
598
598
  identifier_type: RelatedIdentifierType::URL,
@@ -612,7 +612,7 @@ module Datacite
612
612
  expect(resource.related_identifiers).to eq(related_identifiers)
613
613
  end
614
614
  it 'can\'t be set to nil' do
615
- resource = Resource.new(args)
615
+ resource = Resource.new(**args)
616
616
  resource.related_identifiers = nil
617
617
  expect(resource.related_identifiers).to eq([])
618
618
  end
@@ -621,7 +621,7 @@ module Datacite
621
621
 
622
622
  describe '#sizes' do
623
623
  it 'defaults to empty' do
624
- resource = Resource.new(args)
624
+ resource = Resource.new(**args)
625
625
  expect(resource.sizes).to eq([])
626
626
  end
627
627
 
@@ -629,12 +629,12 @@ module Datacite
629
629
  it 'can be initialized' do
630
630
  sizes = %w[48K 128K]
631
631
  args[:sizes] = sizes
632
- resource = Resource.new(args)
632
+ resource = Resource.new(**args)
633
633
  expect(resource.sizes).to eq(sizes)
634
634
  end
635
635
  it 'can\'t be initialized to nil' do
636
636
  args[:sizes] = nil
637
- resource = Resource.new(args)
637
+ resource = Resource.new(**args)
638
638
  expect(resource.sizes).to eq([])
639
639
  end
640
640
  end
@@ -642,12 +642,12 @@ module Datacite
642
642
  describe '#sizes=' do
643
643
  it 'can be set' do
644
644
  sizes = %w[48K 128K]
645
- resource = Resource.new(args)
645
+ resource = Resource.new(**args)
646
646
  resource.sizes = sizes
647
647
  expect(resource.sizes).to eq(sizes)
648
648
  end
649
649
  it 'can\'t be set to nil' do
650
- resource = Resource.new(args)
650
+ resource = Resource.new(**args)
651
651
  resource.sizes = nil
652
652
  expect(resource.sizes).to eq([])
653
653
  end
@@ -656,7 +656,7 @@ module Datacite
656
656
 
657
657
  describe '#formats' do
658
658
  it 'defaults to empty' do
659
- resource = Resource.new(args)
659
+ resource = Resource.new(**args)
660
660
  expect(resource.formats).to eq([])
661
661
  end
662
662
 
@@ -664,12 +664,12 @@ module Datacite
664
664
  it 'can be initialized' do
665
665
  formats = %w[D64 DSK]
666
666
  args[:formats] = formats
667
- resource = Resource.new(args)
667
+ resource = Resource.new(**args)
668
668
  expect(resource.formats).to eq(formats)
669
669
  end
670
670
  it 'can\'t be initialized to nil' do
671
671
  args[:formats] = nil
672
- resource = Resource.new(args)
672
+ resource = Resource.new(**args)
673
673
  expect(resource.formats).to eq([])
674
674
  end
675
675
  end
@@ -677,12 +677,12 @@ module Datacite
677
677
  describe '#formats=' do
678
678
  it 'can be set' do
679
679
  formats = %w[D64 DSK]
680
- resource = Resource.new(args)
680
+ resource = Resource.new(**args)
681
681
  resource.formats = formats
682
682
  expect(resource.formats).to eq(formats)
683
683
  end
684
684
  it 'can\'t be set to nil' do
685
- resource = Resource.new(args)
685
+ resource = Resource.new(**args)
686
686
  resource.formats = nil
687
687
  expect(resource.formats).to eq([])
688
688
  end
@@ -691,17 +691,17 @@ module Datacite
691
691
 
692
692
  describe '#version' do
693
693
  it 'defaults to nil' do
694
- resource = Resource.new(args)
694
+ resource = Resource.new(**args)
695
695
  expect(resource.version).to be_nil
696
696
  end
697
697
  it 'can be initialized' do
698
698
  args[:version] = '9.2.2'
699
- resource = Resource.new(args)
699
+ resource = Resource.new(**args)
700
700
  expect(resource.version).to eq('9.2.2')
701
701
  end
702
702
  it 'can be set' do
703
703
  new_version = '9.2.2'
704
- resource = Resource.new(args)
704
+ resource = Resource.new(**args)
705
705
  resource.version = new_version
706
706
  expect(resource.version).to eq(new_version)
707
707
  end
@@ -709,34 +709,34 @@ module Datacite
709
709
  args[:version] = '
710
710
  9.2.2
711
711
  '
712
- resource = Resource.new(args)
712
+ resource = Resource.new(**args)
713
713
  expect(resource.version).to eq('9.2.2')
714
714
  end
715
715
  it 'strips on set' do
716
- resource = Resource.new(args)
716
+ resource = Resource.new(**args)
717
717
  resource.version = '
718
718
  9.2.2
719
719
  '
720
720
  expect(resource.version).to eq('9.2.2')
721
721
  end
722
722
  it 'accepts a float' do
723
- resource = Resource.new(args)
723
+ resource = Resource.new(**args)
724
724
  resource.version = 9.2
725
725
  expect(resource.version).to eq('9.2')
726
726
  end
727
727
  it 'accepts an integer' do
728
- resource = Resource.new(args)
728
+ resource = Resource.new(**args)
729
729
  resource.version = 9
730
730
  expect(resource.version).to eq('9')
731
731
  end
732
732
  it 'can be initialized' do
733
733
  args[:version] = '9.2.2'
734
- resource = Resource.new(args)
734
+ resource = Resource.new(**args)
735
735
  expect(resource.version).to eq('9.2.2')
736
736
  end
737
737
  it 'can be set to nil' do
738
738
  args[:version] = '9.2.2'
739
- resource = Resource.new(args)
739
+ resource = Resource.new(**args)
740
740
  resource.version = nil
741
741
  expect(resource.version).to be_nil
742
742
  end
@@ -744,7 +744,7 @@ module Datacite
744
744
 
745
745
  describe '#rights_list' do
746
746
  it 'defaults to empty' do
747
- resource = Resource.new(args)
747
+ resource = Resource.new(**args)
748
748
  expect(resource.rights_list).to eq([])
749
749
  end
750
750
 
@@ -755,19 +755,19 @@ module Datacite
755
755
  Rights.new(value: 'This work is free of known copyright restrictions.', uri: URI('http://creativecommons.org/publicdomain/mark/1.0/'))
756
756
  ]
757
757
  args[:rights_list] = rights_list
758
- resource = Resource.new(args)
758
+ resource = Resource.new(**args)
759
759
  expect(resource.rights_list).to eq(rights_list)
760
760
  end
761
761
  it 'can\'t be initialized to nil' do
762
762
  args[:rights_list] = nil
763
- resource = Resource.new(args)
763
+ resource = Resource.new(**args)
764
764
  expect(resource.rights_list).to eq([])
765
765
  end
766
766
  end
767
767
 
768
768
  describe '#rights_list=' do
769
769
  it 'can be set' do
770
- resource = Resource.new(args)
770
+ resource = Resource.new(**args)
771
771
  rights_list = [
772
772
  Rights.new(value: 'CC0 1.0 Universal', uri: URI('http://creativecommons.org/publicdomain/zero/1.0/')),
773
773
  Rights.new(value: 'This work is free of known copyright restrictions.', uri: URI('http://creativecommons.org/publicdomain/mark/1.0/'))
@@ -777,7 +777,7 @@ module Datacite
777
777
  end
778
778
 
779
779
  it 'can\'t be set to nil' do
780
- resource = Resource.new(args)
780
+ resource = Resource.new(**args)
781
781
  resource.rights_list = nil
782
782
  expect(resource.rights_list).to eq([])
783
783
  end
@@ -787,7 +787,7 @@ module Datacite
787
787
 
788
788
  describe '#descriptions' do
789
789
  it 'defaults to empty' do
790
- resource = Resource.new(args)
790
+ resource = Resource.new(**args)
791
791
  expect(resource.descriptions).to eq([])
792
792
  end
793
793
 
@@ -798,12 +798,12 @@ module Datacite
798
798
  Description.new(language: 'en-us', type: DescriptionType::METHODS, value: 'unsound')
799
799
  ]
800
800
  args[:descriptions] = descriptions
801
- resource = Resource.new(args)
801
+ resource = Resource.new(**args)
802
802
  expect(resource.descriptions).to eq(descriptions)
803
803
  end
804
804
  it 'can\'t be initialized to nil' do
805
805
  args[:descriptions] = nil
806
- resource = Resource.new(args)
806
+ resource = Resource.new(**args)
807
807
  expect(resource.descriptions).to eq([])
808
808
  end
809
809
 
@@ -814,7 +814,7 @@ module Datacite
814
814
  Description.allocate
815
815
  ]
816
816
  args[:descriptions] = descriptions
817
- resource = Resource.new(args)
817
+ resource = Resource.new(**args)
818
818
  expect(resource.descriptions).to eq([descriptions[1]])
819
819
  end
820
820
  end
@@ -825,12 +825,12 @@ module Datacite
825
825
  Description.new(language: 'en-us', type: DescriptionType::ABSTRACT, value: 'Exterminate all the brutes!'),
826
826
  Description.new(language: 'en-us', type: DescriptionType::METHODS, value: 'unsound')
827
827
  ]
828
- resource = Resource.new(args)
828
+ resource = Resource.new(**args)
829
829
  resource.descriptions = descriptions
830
830
  expect(resource.descriptions).to eq(descriptions)
831
831
  end
832
832
  it 'can\'t be set to nil' do
833
- resource = Resource.new(args)
833
+ resource = Resource.new(**args)
834
834
  resource.descriptions = nil
835
835
  expect(resource.descriptions).to eq([])
836
836
  end
@@ -841,7 +841,7 @@ module Datacite
841
841
  Description.new(language: 'en-us', type: DescriptionType::METHODS, value: 'unsound'),
842
842
  Description.allocate
843
843
  ]
844
- resource = Resource.new(args)
844
+ resource = Resource.new(**args)
845
845
  resource.descriptions = descriptions
846
846
  expect(resource.descriptions).to eq([descriptions[1]])
847
847
  end
@@ -850,7 +850,7 @@ module Datacite
850
850
 
851
851
  describe '#geo_locations' do
852
852
  it 'defaults to empty' do
853
- resource = Resource.new(args)
853
+ resource = Resource.new(**args)
854
854
  expect(resource.geo_locations).to eq([])
855
855
  end
856
856
 
@@ -861,12 +861,12 @@ module Datacite
861
861
  GeoLocation.new(box: GeoLocationBox.new(-33.45, -122.33, 47.61, -70.67))
862
862
  ]
863
863
  args[:geo_locations] = geo_locations
864
- resource = Resource.new(args)
864
+ resource = Resource.new(**args)
865
865
  expect(resource.geo_locations).to eq(geo_locations)
866
866
  end
867
867
  it 'can\'t be initialized to nil' do
868
868
  args[:geo_locations] = nil
869
- resource = Resource.new(args)
869
+ resource = Resource.new(**args)
870
870
  expect(resource.geo_locations).to eq([])
871
871
  end
872
872
  it 'ignores empty locations' do
@@ -876,14 +876,14 @@ module Datacite
876
876
  GeoLocation.new
877
877
  ]
878
878
  args[:geo_locations] = geo_locations
879
- resource = Resource.new(args)
879
+ resource = Resource.new(**args)
880
880
  expect(resource.geo_locations).to eq([geo_locations[1]])
881
881
  end
882
882
  end
883
883
 
884
884
  describe '#geo_locations=' do
885
885
  it 'can be set' do
886
- resource = Resource.new(args)
886
+ resource = Resource.new(**args)
887
887
  geo_locations = [
888
888
  GeoLocation.new(point: GeoLocationPoint.new(47.61, -122.33)),
889
889
  GeoLocation.new(box: GeoLocationBox.new(-33.45, -122.33, 47.61, -70.67))
@@ -892,12 +892,12 @@ module Datacite
892
892
  expect(resource.geo_locations).to eq(geo_locations)
893
893
  end
894
894
  it 'can\'t be set to nil' do
895
- resource = Resource.new(args)
895
+ resource = Resource.new(**args)
896
896
  resource.geo_locations = nil
897
897
  expect(resource.geo_locations).to eq([])
898
898
  end
899
899
  it 'ignores empty locations' do
900
- resource = Resource.new(args)
900
+ resource = Resource.new(**args)
901
901
  geo_locations = [
902
902
  GeoLocation.new,
903
903
  GeoLocation.new(point: GeoLocationPoint.new(47.61, -122.33)),
@@ -945,14 +945,13 @@ module Datacite
945
945
  r3 = r2.gsub(/<resource (xmlns:xsi="[^"]+")\s+(xsi:schemaLocation="[^"]+")>/, '<resource \\2 \\1 xmlns="http://datacite.org/schema/kernel-3">') # fix missing namespace
946
946
  r4 = r3.gsub(%r{(<identifier[^>]+>)\s*([^ ]+)\s*(</identifier>)}, '\\1\\2\\3') # trim identifiers
947
947
  r5 = r4.gsub(%r{<([^>]+tude)>([0-9.-]+?)(0?)0+</\1>}, '<\\1>\\2\\3</\\1>') # strip trailing coordinate zeroes
948
- r6 = r5.gsub(%r{<(geoLocation[^>]+)>[^<]+</\1>}) { |loc| loc.gsub(/([0-9\-]+\.[0-9]+?)0+([^0-9])/, '\\1\\2') } # strip trailing coordinate zeroes
948
+ r6 = r5.gsub(%r{<(geoLocation[^>]+)>[^<]+</\1>}) { |loc| loc.gsub(/([0-9-]+\.[0-9]+?)0+([^0-9])/, '\\1\\2') } # strip trailing coordinate zeroes
949
949
  r7 = r6.gsub(%r{<([A-Za-z]*)[^>]*>\s*</\1>}, '') # remove empty tag pairs
950
- r8 = to_pretty(r7)
950
+ to_pretty(r7)
951
951
  # if r8.include?('&lt;br')
952
952
  # trace = [r0, r1, r2, r3, r4, r5, r6, r7, r8].map { |r| r.include?('&lt;br') }
953
953
  # puts trace
954
954
  # end
955
- r8
956
955
  end
957
956
 
958
957
  def to_pretty(xml_text)
@@ -977,7 +976,7 @@ module Datacite
977
976
  r3.gsub(%r{(<contributor[^>/]+>\s*)<contributor>([^<]+)</contributor>(\s*</contributor>)}, '\\1<contributorName>\\2</contributorName>\\3') # fix broken contributors
978
977
  end
979
978
 
980
- def it_round_trips(file:, mapping: :_default, fix_dash1: false) # rubocop:disable Metrics/AbcSize
979
+ def it_round_trips(file:, mapping: :_default, fix_dash1: false)
981
980
  options = { mapping: mapping }
982
981
  basename = File.basename(file)
983
982
  xml_text = xml_text_from(file, fix_dash1)