libis-tools 1.0.15 → 1.0.16

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f007ed770338a6d5f537e3388cc72409e4e35deab2c337f8f4a80a76db200371
4
- data.tar.gz: c57cd7d2cb65c0cf6cc03a2e7973ee2d24e279f5e975da5580b4569f50c833b3
3
+ metadata.gz: 8e11e0bac24cf562c5834d59510d7899d61e1295e3128fa66f549f40549d6c3e
4
+ data.tar.gz: 834820ad3715e8321c34af9099a7ff01278f15641ef99fb677eea3df0a0bcef4
5
5
  SHA512:
6
- metadata.gz: a4a87f3ffdb3319e748fa9d60f47971f250fb2ff841ea63f0c7795afbacbee452943958b366b1462f866a406f07a39b5556258778b7913db236e8889a2f2a7ea
7
- data.tar.gz: 1058f448308c579de12b41183d185846278ec9c798cf97cece7f5a324039fcd7886f12960a8023e833eadac073f33245d0fbb3e022d00267f5eaa7f633f34c5d
6
+ metadata.gz: b5c898f23a098f8c592f9cb0a672e8d5248ffc71b4c93062c759daff7341a0cbdd4e95af9dd1017244afd31627c9c4e8d26df8698d433669f919db338eb83a7f
7
+ data.tar.gz: 9c90ddab8ff5e79f0c9478eea359baa70117570a5cafad8fc8454050af4b3f7709ba54a1c314b8aa81ea6cbba791cb64e759ccec2e6c5b97360271aa04cbc388
@@ -88,4 +88,16 @@ module Roo
88
88
  end
89
89
 
90
90
  end
91
+
92
+ class CSV
93
+ def each_row(options, &block)
94
+ if uri?(filename)
95
+ each_row_using_tempdir(options, &block)
96
+ elsif is_stream?(filename_or_stream)
97
+ ::CSV.new(filename_or_stream, **options).each(&block)
98
+ else
99
+ ::CSV.foreach(filename, **options, &block)
100
+ end
101
+ end
102
+ end
91
103
  end
@@ -289,7 +289,7 @@ module Libis
289
289
  compositionLevel: composition_level,
290
290
  # fileLocationType: 'FILE',
291
291
  fileLocation: location,
292
- fileOriginalName: original || target_names,
292
+ fileOriginalName: original || target_name,
293
293
  fileOriginalPath: target_path,
294
294
  # fileOriginalID: URI.encode(location),
295
295
  # fileExtension: ::File.extname(orig_name),
@@ -1,5 +1,5 @@
1
1
  module Libis
2
2
  module Tools
3
- VERSION = '1.0.15'
3
+ VERSION = '1.0.16'
4
4
  end
5
5
  end
@@ -88,7 +88,7 @@ module Libis
88
88
 
89
89
  # Export the XML Document to an XML string.
90
90
  # @param [Hash] options options passed to the underlying Nokogiri::XML::Document#to_xml; default is:
91
- # !{indent: 2, encoding: 'utf-8'}
91
+ # {indent: 2, encoding: 'utf-8'}
92
92
  # @return [String] a string
93
93
  def to_xml(options = {})
94
94
  options = {indent: 2, encoding: 'utf-8', save_with: Nokogiri::XML::Node::SaveOptions::DEFAULT_XML}.merge(options)
@@ -220,4 +220,426 @@ describe 'METS File' do
220
220
  end
221
221
  end
222
222
 
223
+ context 'builder' do
224
+
225
+ let(:dc_record) {
226
+ Libis::Tools::XmlDocument.parse <<-STR
227
+ <?xml version="1.0" encoding="UTF-8"?>
228
+ <dc:record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
229
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
230
+ xmlns:dcterms="http://purl.org/dc/terms/">
231
+ <dc:title>âbç d€f</dc:title>
232
+ </dc:record>
233
+ STR
234
+ }
235
+
236
+ let(:sample) {
237
+ {
238
+ dc_record: dc_record.root.to_xml,
239
+ amd: {
240
+ status: "ACTIVE",
241
+ access_right: "AR_EVERYONE"
242
+ },
243
+ representations: [
244
+ {
245
+ preservation_type: "PRESERVATION_MASTER",
246
+ usage_type: "VIEW",
247
+ label: "Archiefkopie"
248
+ },
249
+ ],
250
+ files: [
251
+ {
252
+ creation_date: '2021-08-27 14:14:26.367 UTC',
253
+ modification_date: '2018-04-06 05:12:27.077 UTC',
254
+ location: "/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/b/abc.doc",
255
+ target_location: "aaa á aaa/b/abc.doc",
256
+ mimetype: "application/msword",
257
+ size: 56320,
258
+ puid: "fmt/39",
259
+ checksum_MD5: "16ddbd5ad80411d8ac1b6acf8348adfb",
260
+ label: "abc.doc",
261
+ representation: 1,
262
+ }, {
263
+ creation_date: '2021-08-27 14:14:26.367 UTC',
264
+ modification_date: '2018-04-06 05:13:04.635 UTC',
265
+ location: "/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/b/def.dóc",
266
+ target_location: "aaa á aaa/b/def.dóc",
267
+ mimetype: "application/msword",
268
+ size: 45056,
269
+ puid: "fmt/39",
270
+ checksum_MD5: "b2907905a58f8599f07334cdc295c2f1",
271
+ label: "def.dóc",
272
+ representation: 1,
273
+ }, {
274
+ creation_date: '2021-08-27 14:14:26.366 UTC',
275
+ modification_date: '2018-04-06 05:12:17.935 UTC',
276
+ location: "/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/b/ábc.doc",
277
+ target_location: "aaa á aaa/b/ábc.doc",
278
+ mimetype: "application/msword",
279
+ size: 61440,
280
+ puid: "fmt/39",
281
+ checksum_MD5: "312bba1438acdb17e3d69d19fe4cac4b",
282
+ label: "ábc.doc",
283
+ representation: 1,
284
+ }, {
285
+ creation_date: '2021-08-27 14:14:26.346 UTC',
286
+ modification_date: '2018-04-06 05:06:40.297 UTC',
287
+ location: "/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/ccçcc/ã b ç d ë ¼.doc",
288
+ target_location: "aaa á aaa/ccçcc/ã b ç d ë ¼.doc",
289
+ mimetype: "application/msword",
290
+ size: 50688,
291
+ puid: "fmt/39",
292
+ checksum_MD5: "cd3e8cfa9cf5ada3485e205d706cee09",
293
+ label: "ã b ç d ë ¼.doc",
294
+ representation: 1,
295
+ }, {
296
+ creation_date: '2021-08-27 14:14:26.356 UTC',
297
+ modification_date: '2018-04-06 05:11:07.095 UTC',
298
+ location: "/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/ss$ss/ã b ç d ë ¼.doc",
299
+ target_location: "aaa á aaa/ss$ss/ã b ç d ë ¼.doc",
300
+ mimetype: "application/msword",
301
+ size: 61440,
302
+ puid: "fmt/39",
303
+ checksum_MD5: "312bba1438acdb17e3d69d19fe4cac4b",
304
+ label: "ã b ç d ë ¼.doc",
305
+ representation: 1,
306
+ },
307
+ ],
308
+ divs: [
309
+ {
310
+ label: "âbç d€f"
311
+ }, {
312
+ parent: 1,
313
+ label: "aaa á aaa",
314
+ }, {
315
+ parent: 2,
316
+ label: "b",
317
+ files: [1,2,3]
318
+ }, {
319
+ parent: 2,
320
+ label: "ccçcc",
321
+ files: [4]
322
+ }, {
323
+ parent: 2,
324
+ label: "ss$ss",
325
+ files: [5]
326
+ },
327
+ ],
328
+ maps: [
329
+ {
330
+ representation: 1,
331
+ div: 1,
332
+ is_logical: false
333
+ }
334
+ ]
335
+ }
336
+ }
337
+
338
+ let(:target) {
339
+ ::Libis::Tools::XmlDocument.build do |xml|
340
+ xml[:mets].mets 'xmlns:mets' => 'http://www.loc.gov/METS/' do
341
+ xml[:mets].dmdSec ID: 'ie-dmd' do
342
+ xml[:mets].mdWrap MDTYPE: 'DC' do
343
+ xml[:mets].xmlData do
344
+ xml << dc_record.root.to_xml
345
+ # xml[:dc].record(
346
+ # 'xmlns:dc' => 'http://purl.org/dc/elements/1.1/',
347
+ # 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
348
+ # 'xmlns:dcterms' => 'http://purl.org/dc/terms/'
349
+ # ) do
350
+ # xml[:dc].title 'âbç d€f'
351
+ # end
352
+ end
353
+ end
354
+ end
355
+ xml[:mets].amdSec ID: 'ie-amd' do
356
+ xml[:mets].techMD ID: 'ie-amd-tech' do
357
+ xml[:mets].mdWrap MDTYPE: 'OTHER', OTHERMDTYPE: 'dnx' do
358
+ xml[:mets].xmlData do
359
+ xml.dnx xmlns: 'http://www.exlibrisgroup.com/dps/dnx' do
360
+ xml.section.generalIECharacteristics! do
361
+ xml.record do
362
+ xml.key.status! 'ACTIVE'
363
+ end
364
+ end
365
+ end
366
+ end
367
+ end
368
+ end
369
+ xml[:mets].rightsMD ID: 'ie-amd-rights' do
370
+ xml[:mets].mdWrap MDTYPE: 'OTHER', OTHERMDTYPE: 'dnx' do
371
+ xml[:mets].xmlData do
372
+ xml.dnx xmlns: 'http://www.exlibrisgroup.com/dps/dnx' do
373
+ xml.section.accessRightsPolicy! do
374
+ xml.record do
375
+ xml.key.policyId! 'AR_EVERYONE'
376
+ end
377
+ end
378
+ end
379
+ end
380
+ end
381
+ end
382
+ end
383
+ xml[:mets].amdSec ID: 'rep1-amd' do
384
+ xml[:mets].techMD ID: 'rep1-amd-tech' do
385
+ xml[:mets].mdWrap MDTYPE: 'OTHER', OTHERMDTYPE: 'dnx' do
386
+ xml[:mets].xmlData do
387
+ xml.dnx xmlns: 'http://www.exlibrisgroup.com/dps/dnx' do
388
+ xml.section.generalRepCharacteristics! do
389
+ xml.record do
390
+ xml.key.preservationType! 'PRESERVATION_MASTER'
391
+ xml.key.usageType! 'VIEW'
392
+ xml.key.label! 'Archiefkopie'
393
+ end
394
+ end
395
+ end
396
+ end
397
+ end
398
+ end
399
+ end
400
+ xml[:mets].amdSec ID: 'fid1-amd' do
401
+ xml[:mets].techMD ID: 'fid1-amd-tech' do
402
+ xml[:mets].mdWrap MDTYPE: 'OTHER', OTHERMDTYPE: 'dnx' do
403
+ xml[:mets].xmlData do
404
+ xml.dnx xmlns: 'http://www.exlibrisgroup.com/dps/dnx' do
405
+ xml.section.generalFileCharacteristics! do
406
+ xml.record do
407
+ xml.key.label! 'abc.doc'
408
+ xml.key.fileCreationDate! '2021-08-27 14:14:26.367 UTC'
409
+ xml.key.fileModificationDate! '2018-04-06 05:12:27.077 UTC'
410
+ xml.key.fileLocation! '/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/b/abc.doc'
411
+ xml.key.fileOriginalName! 'abc.doc'
412
+ xml.key.fileOriginalPath! 'aaa á aaa/b'
413
+ xml.key.fileMIMEType! 'application/msword'
414
+ xml.key.fileSizeBytes! '56320'
415
+ end
416
+ end
417
+ xml.section.fileFixity! do
418
+ xml.record do
419
+ xml.key.fixityType! 'MD5'
420
+ xml.key.fixityValue! '16ddbd5ad80411d8ac1b6acf8348adfb'
421
+ end
422
+ end
423
+ xml.section.objectCharacteristics! do
424
+ xml.record do
425
+ xml.key.groupID! 'grp'
426
+ end
427
+ end
428
+ end
429
+ end
430
+ end
431
+ end
432
+ end
433
+ xml[:mets].amdSec ID: 'fid2-amd' do
434
+ xml[:mets].techMD ID: 'fid2-amd-tech' do
435
+ xml[:mets].mdWrap MDTYPE: 'OTHER', OTHERMDTYPE: 'dnx' do
436
+ xml[:mets].xmlData do
437
+ xml.dnx xmlns: 'http://www.exlibrisgroup.com/dps/dnx' do
438
+ xml.section.generalFileCharacteristics! do
439
+ xml.record do
440
+ xml.key.label! 'def.dóc'
441
+ xml.key.fileCreationDate! '2021-08-27 14:14:26.367 UTC'
442
+ xml.key.fileModificationDate! '2018-04-06 05:13:04.635 UTC'
443
+ xml.key.fileLocation! '/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/b/def.dóc'
444
+ xml.key.fileOriginalName! 'def.dóc'
445
+ xml.key.fileOriginalPath! 'aaa á aaa/b'
446
+ xml.key.fileMIMEType! 'application/msword'
447
+ xml.key.fileSizeBytes! '45056'
448
+ end
449
+ end
450
+ xml.section.fileFixity! do
451
+ xml.record do
452
+ xml.key.fixityType! 'MD5'
453
+ xml.key.fixityValue! 'b2907905a58f8599f07334cdc295c2f1'
454
+ end
455
+ end
456
+ xml.section.objectCharacteristics! do
457
+ xml.record do
458
+ xml.key.groupID! 'grp'
459
+ end
460
+ end
461
+ end
462
+ end
463
+ end
464
+ end
465
+ end
466
+ xml[:mets].amdSec ID: 'fid3-amd' do
467
+ xml[:mets].techMD ID: 'fid3-amd-tech' do
468
+ xml[:mets].mdWrap MDTYPE: 'OTHER', OTHERMDTYPE: 'dnx' do
469
+ xml[:mets].xmlData do
470
+ xml.dnx xmlns: 'http://www.exlibrisgroup.com/dps/dnx' do
471
+ xml.section.generalFileCharacteristics! do
472
+ xml.record do
473
+ xml.key.label! 'ábc.doc'
474
+ xml.key.fileCreationDate! '2021-08-27 14:14:26.366 UTC'
475
+ xml.key.fileModificationDate! '2018-04-06 05:12:17.935 UTC'
476
+ xml.key.fileLocation! '/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/b/ábc.doc'
477
+ xml.key.fileOriginalName! 'ábc.doc'
478
+ xml.key.fileOriginalPath! 'aaa á aaa/b'
479
+ xml.key.fileMIMEType! 'application/msword'
480
+ xml.key.fileSizeBytes! '61440'
481
+ end
482
+ end
483
+ xml.section.fileFixity! do
484
+ xml.record do
485
+ xml.key.fixityType! 'MD5'
486
+ xml.key.fixityValue! '312bba1438acdb17e3d69d19fe4cac4b'
487
+ end
488
+ end
489
+ xml.section.objectCharacteristics! do
490
+ xml.record do
491
+ xml.key.groupID! 'grp'
492
+ end
493
+ end
494
+ end
495
+ end
496
+ end
497
+ end
498
+ end
499
+ xml[:mets].amdSec ID: 'fid4-amd' do
500
+ xml[:mets].techMD ID: 'fid4-amd-tech' do
501
+ xml[:mets].mdWrap MDTYPE: 'OTHER', OTHERMDTYPE: 'dnx' do
502
+ xml[:mets].xmlData do
503
+ xml.dnx xmlns: 'http://www.exlibrisgroup.com/dps/dnx' do
504
+ xml.section.generalFileCharacteristics! do
505
+ xml.record do
506
+ xml.key.label! 'ã b ç d ë ¼.doc'
507
+ xml.key.fileCreationDate! '2021-08-27 14:14:26.346 UTC'
508
+ xml.key.fileModificationDate! '2018-04-06 05:06:40.297 UTC'
509
+ xml.key.fileLocation! '/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/ccçcc/ã b ç d ë ¼.doc'
510
+ xml.key.fileOriginalName! 'ã b ç d ë ¼.doc'
511
+ xml.key.fileOriginalPath! 'aaa á aaa/ccçcc'
512
+ xml.key.fileMIMEType! 'application/msword'
513
+ xml.key.fileSizeBytes! '50688'
514
+ end
515
+ end
516
+ xml.section.fileFixity! do
517
+ xml.record do
518
+ xml.key.fixityType! 'MD5'
519
+ xml.key.fixityValue! 'cd3e8cfa9cf5ada3485e205d706cee09'
520
+ end
521
+ end
522
+ xml.section.objectCharacteristics! do
523
+ xml.record do
524
+ xml.key.groupID! 'grp'
525
+ end
526
+ end
527
+ end
528
+ end
529
+ end
530
+ end
531
+ end
532
+ xml[:mets].amdSec ID: 'fid5-amd' do
533
+ xml[:mets].techMD ID: 'fid5-amd-tech' do
534
+ xml[:mets].mdWrap MDTYPE: 'OTHER', OTHERMDTYPE: 'dnx' do
535
+ xml[:mets].xmlData do
536
+ xml.dnx xmlns: 'http://www.exlibrisgroup.com/dps/dnx' do
537
+ xml.section.generalFileCharacteristics! do
538
+ xml.record do
539
+ xml.key.label! 'ã b ç d ë ¼.doc'
540
+ xml.key.fileCreationDate! '2021-08-27 14:14:26.356 UTC'
541
+ xml.key.fileModificationDate! '2018-04-06 05:11:07.095 UTC'
542
+ xml.key.fileLocation! '/nas/upload/demo/test_diacritics/âbç d€f/aaa á aaa/ss$ss/ã b ç d ë ¼.doc'
543
+ xml.key.fileOriginalName! 'ã b ç d ë ¼.doc'
544
+ xml.key.fileOriginalPath! 'aaa á aaa/ss$ss'
545
+ xml.key.fileMIMEType! 'application/msword'
546
+ xml.key.fileSizeBytes! '61440'
547
+ end
548
+ end
549
+ xml.section.fileFixity! do
550
+ xml.record do
551
+ xml.key.fixityType! 'MD5'
552
+ xml.key.fixityValue! '312bba1438acdb17e3d69d19fe4cac4b'
553
+ end
554
+ end
555
+ xml.section.objectCharacteristics! do
556
+ xml.record do
557
+ xml.key.groupID! 'grp'
558
+ end
559
+ end
560
+ end
561
+ end
562
+ end
563
+ end
564
+ end
565
+ xml[:mets].fileSec do
566
+ xml[:mets].fileGrp ID: 'rep1', USE: 'VIEW', ADMID: 'rep1-amd' do
567
+ xml[:mets].file ID: 'fid1', MIMETYPE: 'application/msword', ADMID: 'fid1-amd', GROUPID: 'grp' do
568
+ xml[:mets].FLocat 'xmlns:xlin' => 'http://www.w3.org/1999/xlink', LOCTYPE: 'URL', 'xlin:href' => 'aaa á aaa/b/abc.doc'
569
+ end
570
+ xml[:mets].file ID: 'fid2', MIMETYPE: 'application/msword', ADMID: 'fid2-amd', GROUPID: 'grp' do
571
+ xml[:mets].FLocat 'xmlns:xlin' => 'http://www.w3.org/1999/xlink', LOCTYPE: 'URL', 'xlin:href' => 'aaa á aaa/b/def.dóc'
572
+ end
573
+ xml[:mets].file ID: 'fid3', MIMETYPE: 'application/msword', ADMID: 'fid3-amd', GROUPID: 'grp' do
574
+ xml[:mets].FLocat 'xmlns:xlin' => 'http://www.w3.org/1999/xlink', LOCTYPE: 'URL', 'xlin:href' => 'aaa á aaa/b/ábc.doc'
575
+ end
576
+ xml[:mets].file ID: 'fid4', MIMETYPE: 'application/msword', ADMID: 'fid4-amd', GROUPID: 'grp' do
577
+ xml[:mets].FLocat 'xmlns:xlin' => 'http://www.w3.org/1999/xlink', LOCTYPE: 'URL', 'xlin:href' => 'aaa á aaa/ccçcc/ã b ç d ë ¼.doc'
578
+ end
579
+ xml[:mets].file ID: 'fid5', MIMETYPE: 'application/msword', ADMID: 'fid5-amd', GROUPID: 'grp' do
580
+ xml[:mets].FLocat 'xmlns:xlin' => 'http://www.w3.org/1999/xlink', LOCTYPE: 'URL', 'xlin:href' => 'aaa á aaa/ss$ss/ã b ç d ë ¼.doc'
581
+ end
582
+ end
583
+ end
584
+ xml[:mets].structMap ID: 'rep1-1', TYPE: 'PHYSICAL' do
585
+ xml[:mets].div LABEL: 'Archiefkopie' do
586
+ xml[:mets].div LABEL: 'âbç d€f' do
587
+ xml[:mets].div LABEL: 'aaa á aaa' do
588
+ xml[:mets].div LABEL: 'b' do
589
+ xml[:mets].div LABEL: 'abc.doc', TYPE: 'FILE' do
590
+ xml[:mets].fptr FILEID: 'fid1'
591
+ end
592
+ xml[:mets].div LABEL: 'def.dóc', TYPE: 'FILE' do
593
+ xml[:mets].fptr FILEID: 'fid2'
594
+ end
595
+ xml[:mets].div LABEL: 'ábc.doc', TYPE: 'FILE' do
596
+ xml[:mets].fptr FILEID: 'fid3'
597
+ end
598
+ end
599
+ xml[:mets].div LABEL: 'ccçcc' do
600
+ xml[:mets].div LABEL: 'ã b ç d ë ¼.doc', TYPE: 'FILE' do
601
+ xml[:mets].fptr FILEID: 'fid4'
602
+ end
603
+ end
604
+ xml[:mets].div LABEL: 'ss$ss' do
605
+ xml[:mets].div LABEL: 'ã b ç d ë ¼.doc', TYPE: 'FILE' do
606
+ xml[:mets].fptr FILEID: 'fid5'
607
+ end
608
+ end
609
+ end
610
+ end
611
+ end
612
+ end
613
+ end
614
+ end.document
615
+ }
616
+
617
+ it 'produces METS XML' do
618
+ mets_file.dc_record = sample[:dc_record]
619
+ mets_file.amd_info = sample[:amd]
620
+ sample[:representations].each do |rep|
621
+ mets_file.representation(rep)
622
+ end
623
+ sample[:files].each do |file|
624
+ rep_id = file.delete(:representation)
625
+ rep = mets_file.representations[rep_id]
626
+ mets_file.file(file).representation = rep
627
+ end
628
+ sample[:divs].each do |div|
629
+ parent = div.delete(:parent)
630
+ files = div.delete(:files)
631
+ d = mets_file.div(div)
632
+ files.each { |f| d << mets_file.files[f] } if files
633
+ mets_file.divs[parent] << d if parent
634
+ end
635
+ sample[:maps].each do |map|
636
+ rep = mets_file.representations[map[:representation]]
637
+ div = mets_file.divs[map[:div]]
638
+ mets_file.map(rep, div)
639
+ end
640
+
641
+ expect(mets_file.xml_doc.root).to be_equivalent_to target.root
642
+ end
643
+ end
644
+
223
645
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libis-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.15
4
+ version: 1.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kris Dekeyser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-30 00:00:00.000000000 Z
11
+ date: 2021-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler