bagit 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
3
4
 
4
5
  describe BagIt::Bag do
5
6
  describe "BagIt Manifests" do
@@ -7,13 +8,14 @@ describe BagIt::Bag do
7
8
  @sandbox = Sandbox.new
8
9
 
9
10
  # make the bag
10
- @bag_path = File.join @sandbox.to_s, 'the_bag'
11
+ @bag_path = File.join @sandbox.to_s, "the_bag"
11
12
  @bag = described_class.new @bag_path
12
13
 
13
14
  # add some files
14
- File.open('/dev/urandom') do |rio|
15
+ File.open("/dev/urandom") do |rio|
15
16
  10.times do |n|
16
- @bag.add_file("file-#{n}-💩
17
+ @bag.add_file("file-#{n}-💩
18
+ ") { |io| io.write rio.read(16) }
17
19
  @bag.add_tag_file("tag-#{n}") { |io| io.write rio.read(16) }
18
20
  end
19
21
  end
@@ -25,13 +27,16 @@ describe BagIt::Bag do
25
27
 
26
28
  shared_examples_for "a manifest file" do
27
29
  before do
28
- pattern = File.join @bag_path, '*manifest-*.txt'
30
+ pattern = File.join @bag_path, "*manifest-*.txt"
29
31
  @manifest_files = Dir.glob pattern
30
32
  end
31
33
 
32
34
  it "has a valid algorithm in the name (at least md5 or sha1)" do
33
- algorithms = @manifest_files.map { |mf| mf =~ /manifest-(.*).txt$/; Regexp.last_match(1) }
34
- algorithms.each { |a| expect(a).to be_in('md5', 'sha1') }
35
+ algorithms = @manifest_files.map { |mf|
36
+ mf =~ /manifest-(.*).txt$/
37
+ Regexp.last_match(1)
38
+ }
39
+ algorithms.each { |a| expect(a).to be_in("md5", "sha1") }
35
40
  end
36
41
 
37
42
  it "is not an empty file" do
@@ -47,7 +52,7 @@ describe BagIt::Bag do
47
52
  end
48
53
 
49
54
  it "validates after adding a file and remanifesting" do
50
- @bag.add_file('newfile.txt') { |io| io.puts("new file to remanifest") }
55
+ @bag.add_file("newfile.txt") { |io| io.puts("new file to remanifest") }
51
56
  @bag.manifest!
52
57
  expect(@bag).to be_valid
53
58
  end
@@ -1,25 +1,27 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- require 'coveralls'
1
+ # frozen_string_literal: true
2
+
3
+ require "rubygems"
4
+ require "bundler"
5
+ require "coveralls"
4
6
 
5
7
  Bundler.require(:default, :test)
6
8
 
7
9
  Coveralls.wear!
8
10
 
9
- require File.expand_path('./util/bagit_matchers', File.dirname(__FILE__))
11
+ require File.expand_path("./util/bagit_matchers", File.dirname(__FILE__))
10
12
 
11
13
  RSpec.configure do |config|
12
14
  config.include(BagitMatchers)
13
15
  end
14
16
 
15
- $LOAD_PATH.unshift File.expand_path('../lib', File.dirname(__FILE__))
16
- require 'bagit'
17
+ $LOAD_PATH.unshift File.expand_path("../lib", File.dirname(__FILE__))
18
+ require "bagit"
17
19
 
18
- require 'tempfile'
20
+ require "tempfile"
19
21
 
20
22
  class Sandbox
21
23
  def initialize
22
- tf = Tempfile.open 'sandbox'
24
+ tf = Tempfile.open "sandbox"
23
25
  @path = tf.path
24
26
  tf.close!
25
27
  FileUtils.mkdir @path
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
3
4
 
4
5
  describe BagIt::Bag do
5
6
  describe "Tag Info Files" do
@@ -7,11 +8,11 @@ describe BagIt::Bag do
7
8
  @sandbox = Sandbox.new
8
9
 
9
10
  # make the bag
10
- @bag_path = File.join @sandbox.to_s, 'the_bag'
11
+ @bag_path = File.join @sandbox.to_s, "the_bag"
11
12
  @bag = described_class.new @bag_path
12
13
 
13
14
  # add some files
14
- File.open('/dev/urandom') do |rio|
15
+ File.open("/dev/urandom") do |rio|
15
16
  10.times do |n|
16
17
  @bag.add_file("file-#{n}-💩
17
18
  end
@@ -24,12 +25,12 @@ describe BagIt::Bag do
24
25
 
25
26
  describe "bagit.txt" do
26
27
  before do
27
- path = File.join @bag_path, 'bagit.txt'
28
+ path = File.join @bag_path, "bagit.txt"
28
29
  @lines = File.open(path, &:readlines)
29
30
  end
30
31
 
31
32
  it "creates a file bagit.txt on bag initialization" do
32
- expect(File.join(@bag_path, 'bagit.txt')).to exist_on_fs
33
+ expect(File.join(@bag_path, "bagit.txt")).to exist_on_fs
33
34
  end
34
35
 
35
36
  it "has exactly two lines" do
@@ -49,7 +50,7 @@ describe BagIt::Bag do
49
50
 
50
51
  describe "bag-info.txt" do
51
52
  before do
52
- path = File.join @bag_path, 'bag-info.txt'
53
+ path = File.join @bag_path, "bag-info.txt"
53
54
  @lines = File.open(path, &:readlines)
54
55
  end
55
56
 
@@ -62,20 +63,20 @@ describe BagIt::Bag do
62
63
  end
63
64
 
64
65
  it "is case insensitive with respect to LABELs" do
65
- expect { @bag.write_bag_info 'foo' => 'lowercase', 'Foo' => 'capital' }.to raise_error(/Multiple labels/)
66
+ expect { @bag.write_bag_info "foo" => "lowercase", "Foo" => "capital" }.to raise_error(/Multiple labels/)
66
67
  end
67
68
 
68
69
  it "folds long VALUEs" do
69
- longline = <<LOREM
70
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
71
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad
72
- minim veniam, quis nostrud exercitation ullamco laboris nisi ut
73
- aliquip ex ea commodo consequat. Duis aute irure dolor in
74
- reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
75
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
76
- culpa qui officia deserunt mollit anim id est laborum.
77
- LOREM
78
- @bag.write_bag_info 'Lorem' => longline
70
+ longline = <<~LOREM
71
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
72
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad
73
+ minim veniam, quis nostrud exercitation ullamco laboris nisi ut
74
+ aliquip ex ea commodo consequat. Duis aute irure dolor in
75
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
76
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
77
+ culpa qui officia deserunt mollit anim id est laborum.
78
+ LOREM
79
+ @bag.write_bag_info "Lorem" => longline
79
80
  expect(@bag.bag_info.keys.length).to eq(4) # this isn't a great test. Changed it from 1 to 4 because unrelated changes caused failure.
80
81
  end
81
82
 
@@ -92,10 +93,10 @@ LOREM
92
93
  expect(@bag.bag_info.keys).to include("Payload-Oxum")
93
94
  end
94
95
  it "does not override any previous values" do
95
- path = File.join @bag_path, 'bag-info.txt'
96
- @bag.write_bag_info 'Bag-Software-Agent' => 'Some Other Agent'
97
- @bag.write_bag_info 'Source-Organization' => 'Awesome Inc.'
98
- @bag.write_bag_info 'Bagging-Date' => '1901-01-01'
96
+ path = File.join @bag_path, "bag-info.txt"
97
+ @bag.write_bag_info "Bag-Software-Agent" => "Some Other Agent"
98
+ @bag.write_bag_info "Source-Organization" => "Awesome Inc."
99
+ @bag.write_bag_info "Bagging-Date" => "1901-01-01"
99
100
  @bag.write_bag_info
100
101
  contents = File.open(path).read
101
102
  expect(contents).to include "Some Other Agent"
@@ -103,19 +104,19 @@ LOREM
103
104
  expect(contents).to include "1901-01-01"
104
105
  end
105
106
  it "overrides previous tags when they collide with new ones" do
106
- path = File.join @bag_path, 'bag-info.txt'
107
- @bag.write_bag_info 'Source-Organization' => 'Awesome Inc.'
108
- @bag.write_bag_info 'Source-Organization' => 'Awesome LLC.'
107
+ path = File.join @bag_path, "bag-info.txt"
108
+ @bag.write_bag_info "Source-Organization" => "Awesome Inc."
109
+ @bag.write_bag_info "Source-Organization" => "Awesome LLC."
109
110
  contents = File.open(path).read
110
111
  expect(contents).to include "Awesome LLC."
111
112
  expect(contents).not_to include "Awesome Inc."
112
113
  end
113
114
  it "contains values passed to bag" do
114
- hash = { "Bag-Software-Agent" => "rspec",
115
- "Bagging-Date" => "2012-11-21",
116
- "Contact-Name" => "Willis Corto",
117
- "Some-Tag" => "Some Value" }
118
- bag_with_info = described_class.new(@bag_path + '2', hash)
115
+ hash = {"Bag-Software-Agent" => "rspec",
116
+ "Bagging-Date" => "2012-11-21",
117
+ "Contact-Name" => "Willis Corto",
118
+ "Some-Tag" => "Some Value"}
119
+ bag_with_info = described_class.new(@bag_path + "2", hash)
119
120
  hash.each do |key, value|
120
121
  expect(bag_with_info.bag_info[key]).to eq(value)
121
122
  end
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
3
4
 
4
5
  describe BagIt::Bag do
5
6
  describe "Tag Specs" do
@@ -7,11 +8,11 @@ describe BagIt::Bag do
7
8
  @sandbox = Sandbox.new
8
9
 
9
10
  # make the bag
10
- @bag_path = File.join @sandbox.to_s, 'the_bag'
11
+ @bag_path = File.join @sandbox.to_s, "the_bag"
11
12
  @bag = described_class.new(@bag_path)
12
13
 
13
14
  # add some files
14
- File.open('/dev/urandom') do |rio|
15
+ File.open("/dev/urandom") do |rio|
15
16
  10.times do |n|
16
17
  @bag.add_file("file-#{n}-💩
17
18
  @bag.add_tag_file("tag-#{n}") { |io| io.write rio.read(16) }
@@ -24,11 +25,11 @@ describe BagIt::Bag do
24
25
  end
25
26
  describe "#add_tag_file" do
26
27
  it "allows addition of tag files via io" do
27
- @bag.add_tag_file("foo") { |io| io.puts 'all alone' }
28
+ @bag.add_tag_file("foo") { |io| io.puts "all alone" }
28
29
  expect(File.join(@bag_path, "foo")).to exist_on_fs
29
30
  end
30
31
  it "allows addition of bag files within directories using io" do
31
- @bag.add_tag_file("fedora/foo") { |io| io.puts 'all alone' }
32
+ @bag.add_tag_file("fedora/foo") { |io| io.puts "all alone" }
32
33
  expect(File.join(@bag_path, "fedora", "foo")).to exist_on_fs
33
34
  end
34
35
  it "allows addition of deep tag files" do
@@ -36,12 +37,12 @@ describe BagIt::Bag do
36
37
  expect(File.join(@bag_path, "fedora", "foo", "newfoo", "deep")).to exist_on_fs
37
38
  end
38
39
  it "does not allow overwriting of tag files" do
39
- expect { @bag.add_tag_file("tag-0") { |io| io.puts 'overwrite!' } }.to raise_error(RuntimeError)
40
+ expect { @bag.add_tag_file("tag-0") { |io| io.puts "overwrite!" } }.to raise_error(RuntimeError)
40
41
  end
41
42
  it "allows addition of tag files via copy" do
42
- src_path = File.join @sandbox.to_s, 'somefile'
43
- File.open(src_path, 'w') { |io| io.puts "something" }
44
- @bag.add_tag_file("foo", src_path) { |io| io.puts 'all alone' }
43
+ src_path = File.join @sandbox.to_s, "somefile"
44
+ File.open(src_path, "w") { |io| io.puts "something" }
45
+ @bag.add_tag_file("foo", src_path) { |io| io.puts "all alone" }
45
46
  expect(File.join(@bag_path, "foo")).to exist_on_fs
46
47
  end
47
48
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BagitMatchers
2
4
  class BeIn
3
5
  def initialize(*expected_collection)
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
3
4
 
4
5
  describe BagIt::Bag do
5
6
  describe "a valid bag" do
@@ -7,11 +8,11 @@ describe BagIt::Bag do
7
8
  @sandbox = Sandbox.new
8
9
 
9
10
  # make the bag
10
- @bag_path = File.join @sandbox.to_s, 'the_bag'
11
+ @bag_path = File.join @sandbox.to_s, "the_bag"
11
12
  @bag = described_class.new @bag_path
12
13
 
13
14
  # add some files
14
- File.open('/dev/urandom') do |rio|
15
+ File.open("/dev/urandom") do |rio|
15
16
  10.times do |n|
16
17
  @bag.add_file("file-#{n}-💩
17
18
  ") { |io| io.write rio.read(16) }
@@ -32,38 +33,38 @@ describe BagIt::Bag do
32
33
 
33
34
  it "is invalid if there is a file that's in the bag, but not in the manifest" do
34
35
  # add a file into the bag through the back door
35
- File.open(File.join(@bag.data_dir, 'not-manifested'), 'w') do |io|
36
- io.puts 'nothing to see here, move along'
36
+ File.open(File.join(@bag.data_dir, "not-manifested"), "w") do |io|
37
+ io.puts "nothing to see here, move along"
37
38
  end
38
39
 
39
- @bag.validate_only('true_for/completeness')
40
+ @bag.validate_only("true_for/completeness")
40
41
  expect(@bag.errors.on(:completeness)).not_to be_empty
41
42
  expect(@bag).not_to be_valid
42
43
  end
43
44
 
44
45
  it "is invalid if there are files that are in the manifest but not in the bag" do
45
46
  # add a file and then remove it through the back door
46
- @bag.add_file("file-k") { |io| io.puts 'time to go' }
47
+ @bag.add_file("file-k") { |io| io.puts "time to go" }
47
48
  @bag.manifest!
48
49
 
49
- FileUtils.rm File.join(@bag.bag_dir, 'data', 'file-k')
50
+ FileUtils.rm File.join(@bag.bag_dir, "data", "file-k")
50
51
 
51
- @bag.validate_only('true_for/completeness')
52
+ @bag.validate_only("true_for/completeness")
52
53
  expect(@bag.errors.on(:completeness)).not_to be_empty
53
54
  expect(@bag).not_to be_valid
54
55
  end
55
56
 
56
57
  it "is invalid if there is a fixity problem" do
57
58
  # tweak a file through the back door
58
- File.open(@bag.bag_files[0], 'a') { |io| io.puts 'oops!' }
59
+ File.open(@bag.bag_files[0], "a") { |io| io.puts "oops!" }
59
60
 
60
- @bag.validate_only('true_for/consistency')
61
+ @bag.validate_only("true_for/consistency")
61
62
  expect(@bag.errors.on(:consistency)).not_to be_empty
62
63
  expect(@bag).not_to be_valid
63
64
  end
64
65
 
65
66
  it "calculates sha1 correctly for a big file" do
66
- @bag.add_file 'big-data-file' do |fh|
67
+ @bag.add_file "big-data-file" do |fh|
67
68
  count = 0
68
69
  while count < 1024 * 512
69
70
  fh.write "1" * 1024
@@ -71,14 +72,14 @@ describe BagIt::Bag do
71
72
  end
72
73
  end
73
74
  @bag.manifest!
74
- sha1_manifest = File.join @bag_path, 'manifest-sha1.txt'
75
+ sha1_manifest = File.join @bag_path, "manifest-sha1.txt"
75
76
  checksums = {}
76
77
  File.open(sha1_manifest).each_line do |line|
77
- fixity, path = line.split(' ')
78
+ fixity, path = line.split(" ")
78
79
  checksums[path] = fixity
79
80
  end
80
- expected = checksums['data/big-data-file']
81
- expect(expected).to eq('12be64c30968bb90136ee695dc58f4b2276968c6')
81
+ expected = checksums["data/big-data-file"]
82
+ expect(expected).to eq("12be64c30968bb90136ee695dc58f4b2276968c6")
82
83
  end
83
84
 
84
85
  it "validates by oxum when needed" do
@@ -87,7 +88,7 @@ describe BagIt::Bag do
87
88
 
88
89
  it "raises a sensible error when the manifest algorithm is unknown" do
89
90
  # add a manifest with an unsupported algorithm
90
- File.open(File.join(@bag.bag_dir, 'manifest-sha999.txt'), 'w') do |io|
91
+ File.open(File.join(@bag.bag_dir, "manifest-sha999.txt"), "w") do |io|
91
92
  io.puts "digest-does-not-matter data/file-0\n"
92
93
  end
93
94
  expect { @bag.valid? }.to raise_error ArgumentError
@@ -95,13 +96,13 @@ describe BagIt::Bag do
95
96
 
96
97
  it "validates false by oxum when file count is incorrect" do
97
98
  # tweak oxum through backdoor
98
- File.open(@bag.bag_info_txt_file, 'a') { |f| f.write "Payload-Oxum: " + @bag.bag_info["Payload-Oxum"].split('.')[0] + '.0' }
99
+ File.open(@bag.bag_info_txt_file, "a") { |f| f.write "Payload-Oxum: " + @bag.bag_info["Payload-Oxum"].split(".")[0] + ".0" }
99
100
  expect(@bag.valid_oxum?).to eq(false)
100
101
  end
101
102
 
102
103
  it "validates false by oxum when octetstream size is incorrect" do
103
104
  # tweak oxum through backdoor
104
- File.open(@bag.bag_info_txt_file, 'a') { |f| f.write "Payload-Oxum: 1." + @bag.bag_info["Payload-Oxum"].split('.')[1] }
105
+ File.open(@bag.bag_info_txt_file, "a") { |f| f.write "Payload-Oxum: 1." + @bag.bag_info["Payload-Oxum"].split(".")[1] }
105
106
  expect(@bag.valid_oxum?).to eq(false)
106
107
  end
107
108
 
@@ -127,10 +128,10 @@ describe BagIt::Bag do
127
128
  describe "tag manifest validation" do
128
129
  it "is invalid if listed tag file does not exist" do
129
130
  # add a file and then remove it through the back door
130
- @bag.add_tag_file("tag-k") { |io| io.puts 'time to go' }
131
+ @bag.add_tag_file("tag-k") { |io| io.puts "time to go" }
131
132
  @bag.tagmanifest!
132
133
 
133
- FileUtils.rm File.join(@bag.bag_dir, 'tag-k')
134
+ FileUtils.rm File.join(@bag.bag_dir, "tag-k")
134
135
 
135
136
  # @bag.should_not be_valid
136
137
  expect(@bag).not_to be_valid
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bagit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Johnson, Francesco Lazzarino, Jamie Little
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-09 00:00:00.000000000 Z
11
+ date: 2020-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: validatable
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.5.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: bixby
42
+ name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: coveralls
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: coveralls
70
+ name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: pry
84
+ name: pry-byebug
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,47 +95,47 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: pry-byebug
98
+ name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: 12.3.3
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: 12.3.3
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake
112
+ name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '10.4'
117
+ version: '3'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '10.4'
124
+ version: '3'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rspec
126
+ name: standard
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: '3'
131
+ version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: '3'
138
+ version: '0'
139
139
  description: Ruby Library and Command Line tools for bagit
140
140
  email: jamie@jamielittle.org
141
141
  executables:
@@ -144,7 +144,6 @@ extensions: []
144
144
  extra_rdoc_files: []
145
145
  files:
146
146
  - ".gitignore"
147
- - ".rubocop.yml"
148
147
  - ".travis.yml"
149
148
  - Gemfile
150
149
  - LICENSE.txt
@@ -189,8 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
188
  - !ruby/object:Gem::Version
190
189
  version: '0'
191
190
  requirements: []
192
- rubyforge_project:
193
- rubygems_version: 2.6.14
191
+ rubygems_version: 3.0.8
194
192
  signing_key:
195
193
  specification_version: 4
196
194
  summary: BagIt package generation and validation