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.
- checksums.yaml +5 -5
- data/.gitignore +2 -1
- data/Gemfile +3 -1
- data/Rakefile +10 -13
- data/bagit.gemspec +24 -23
- data/bin/bagit +22 -32
- data/lib/bagit.rb +8 -6
- data/lib/bagit/bag.rb +21 -19
- data/lib/bagit/fetch.rb +10 -8
- data/lib/bagit/file.rb +2 -0
- data/lib/bagit/info.rb +45 -43
- data/lib/bagit/manifest.rb +25 -23
- data/lib/bagit/string.rb +4 -2
- data/lib/bagit/valid.rb +45 -43
- data/lib/bagit/version.rb +3 -1
- data/spec/bagit_spec.rb +30 -29
- data/spec/fetch_spec.rb +13 -12
- data/spec/manifest_spec.rb +14 -9
- data/spec/spec_helper.rb +10 -8
- data/spec/tag_info_spec.rb +31 -30
- data/spec/tag_spec.rb +11 -10
- data/spec/util/bagit_matchers.rb +2 -0
- data/spec/validation_spec.rb +23 -22
- metadata +18 -20
- data/.rubocop.yml +0 -22
data/spec/manifest_spec.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
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,
|
|
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(
|
|
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,
|
|
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|
|
|
34
|
-
|
|
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(
|
|
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
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require
|
|
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(
|
|
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(
|
|
16
|
-
require
|
|
17
|
+
$LOAD_PATH.unshift File.expand_path("../lib", File.dirname(__FILE__))
|
|
18
|
+
require "bagit"
|
|
17
19
|
|
|
18
|
-
require
|
|
20
|
+
require "tempfile"
|
|
19
21
|
|
|
20
22
|
class Sandbox
|
|
21
23
|
def initialize
|
|
22
|
-
tf = Tempfile.open
|
|
24
|
+
tf = Tempfile.open "sandbox"
|
|
23
25
|
@path = tf.path
|
|
24
26
|
tf.close!
|
|
25
27
|
FileUtils.mkdir @path
|
data/spec/tag_info_spec.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
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,
|
|
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(
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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 =
|
|
70
|
-
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
LOREM
|
|
78
|
-
@bag.write_bag_info
|
|
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,
|
|
96
|
-
@bag.write_bag_info
|
|
97
|
-
@bag.write_bag_info
|
|
98
|
-
@bag.write_bag_info
|
|
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,
|
|
107
|
-
@bag.write_bag_info
|
|
108
|
-
@bag.write_bag_info
|
|
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 = {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
bag_with_info = described_class.new(@bag_path +
|
|
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
|
data/spec/tag_spec.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
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,
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
43
|
-
File.open(src_path,
|
|
44
|
-
@bag.add_tag_file("foo", src_path) { |io| io.puts
|
|
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
|
data/spec/util/bagit_matchers.rb
CHANGED
data/spec/validation_spec.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
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,
|
|
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(
|
|
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,
|
|
36
|
-
io.puts
|
|
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(
|
|
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
|
|
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,
|
|
50
|
+
FileUtils.rm File.join(@bag.bag_dir, "data", "file-k")
|
|
50
51
|
|
|
51
|
-
@bag.validate_only(
|
|
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],
|
|
59
|
+
File.open(@bag.bag_files[0], "a") { |io| io.puts "oops!" }
|
|
59
60
|
|
|
60
|
-
@bag.validate_only(
|
|
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
|
|
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,
|
|
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[
|
|
81
|
-
expect(expected).to eq(
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
98
|
+
name: rake
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - ">="
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
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:
|
|
110
|
+
version: 12.3.3
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
112
|
+
name: rspec
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - "~>"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
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: '
|
|
124
|
+
version: '3'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
126
|
+
name: standard
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
|
-
- - "
|
|
129
|
+
- - ">="
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
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: '
|
|
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
|
-
|
|
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
|