pairtree 0.1.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/tests.yml +22 -0
- data/.gitignore +3 -0
- data/Gemfile +8 -2
- data/README.md +56 -0
- data/Rakefile +32 -22
- data/lib/pairtree/identifier.rb +23 -6
- data/lib/pairtree/obj.rb +20 -21
- data/lib/pairtree/path.rb +14 -16
- data/lib/pairtree/root.rb +13 -14
- data/lib/pairtree.rb +33 -28
- data/lib/tasks/rdoc.rake +13 -14
- data/pairtree.gemspec +13 -20
- data/spec/pairtree/pairtree_encoding_spec.rb +26 -22
- data/spec/pairtree/pairtree_obj_spec.rb +28 -30
- data/spec/pairtree/pairtree_path_spec.rb +13 -15
- data/spec/pairtree/pairtree_root_spec.rb +32 -34
- data/spec/pairtree/pairtree_spec.rb +24 -28
- data/spec/spec_helper.rb +17 -5
- metadata +47 -47
- data/README.textile +0 -37
@@ -1,56 +1,61 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "spec_helper"
|
2
|
+
require "pairtree"
|
3
3
|
|
4
4
|
describe "Pairtree encoding" do
|
5
|
-
|
6
|
-
def roundtrip(id, expected_encoded=nil, expected_path=nil)
|
5
|
+
def roundtrip(id, expected_encoded = nil, expected_path = nil)
|
7
6
|
encoded = Pairtree::Identifier.encode(id)
|
8
7
|
unless expected_encoded.nil?
|
9
|
-
encoded.
|
8
|
+
expect(encoded).to eql(expected_encoded)
|
10
9
|
end
|
11
10
|
unless expected_path.nil?
|
12
11
|
path = Pairtree::Path.id_to_path(id)
|
13
|
-
path.
|
12
|
+
expect(path).to eql(expected_path)
|
13
|
+
end
|
14
|
+
str = Pairtree::Identifier.decode(encoded)
|
15
|
+
|
16
|
+
if str.respond_to? :force_encoding
|
17
|
+
str.force_encoding("UTF-8")
|
14
18
|
end
|
15
|
-
|
19
|
+
|
20
|
+
expect(str).to eql(id)
|
16
21
|
end
|
17
|
-
|
22
|
+
|
18
23
|
it "should handle a" do
|
19
|
-
roundtrip(
|
24
|
+
roundtrip("a", "a", "a/a")
|
20
25
|
end
|
21
26
|
|
22
27
|
it "should handle ab" do
|
23
|
-
roundtrip(
|
28
|
+
roundtrip("ab", "ab", "ab/ab")
|
24
29
|
end
|
25
30
|
|
26
31
|
it "should handle abc" do
|
27
|
-
roundtrip(
|
32
|
+
roundtrip("abc", "abc", "ab/c/abc")
|
28
33
|
end
|
29
34
|
|
30
35
|
it "should handle abcd" do
|
31
|
-
roundtrip(
|
36
|
+
roundtrip("abcd", "abcd", "ab/cd/abcd")
|
32
37
|
end
|
33
38
|
|
34
39
|
it "should handle space" do
|
35
|
-
roundtrip(
|
40
|
+
roundtrip("hello world", "hello^20world", "he/ll/o^/20/wo/rl/d/hello^20world")
|
36
41
|
end
|
37
42
|
|
38
43
|
it "should handle slash" do
|
39
|
-
roundtrip("/","=",
|
44
|
+
roundtrip("/", "=", "=/=")
|
40
45
|
end
|
41
46
|
|
42
47
|
it "should handle urn" do
|
43
|
-
roundtrip(
|
48
|
+
roundtrip("http://n2t.info/urn:nbn:se:kb:repos-1", "http+==n2t,info=urn+nbn+se+kb+repos-1", "ht/tp/+=/=n/2t/,i/nf/o=/ur/n+/nb/n+/se/+k/b+/re/po/s-/1/http+==n2t,info=urn+nbn+se+kb+repos-1")
|
44
49
|
end
|
45
|
-
|
50
|
+
|
46
51
|
it "should handle wtf" do
|
47
|
-
roundtrip(
|
52
|
+
roundtrip("what-the-*@?#!^!?", "what-the-^2a@^3f#!^5e!^3f", "wh/at/-t/he/-^/2a/@^/3f/#!/^5/e!/^3/f/what-the-^2a@^3f#!^5e!^3f")
|
48
53
|
end
|
49
54
|
|
50
55
|
it "should handle special characters" do
|
51
56
|
roundtrip('\\"*+,<=>?^|', "^5c^22^2a^2b^2c^3c^3d^3e^3f^5e^7c")
|
52
57
|
end
|
53
|
-
|
58
|
+
|
54
59
|
it "should roundtrip hardcore Unicode" do
|
55
60
|
roundtrip(%{
|
56
61
|
1. Euro Symbol: €.
|
@@ -69,9 +74,9 @@ describe "Pairtree encoding" do
|
|
69
74
|
14. Thai: ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ "
|
70
75
|
})
|
71
76
|
end
|
72
|
-
|
77
|
+
|
73
78
|
it "should roundtrip French" do
|
74
|
-
roundtrip(
|
79
|
+
roundtrip("Années de Pèlerinage", "Ann^c3^a9es^20de^20P^c3^a8lerinage", "An/n^/c3/^a/9e/s^/20/de/^2/0P/^c/3^/a8/le/ri/na/ge/Ann^c3^a9es^20de^20P^c3^a8lerinage")
|
75
80
|
roundtrip(%{
|
76
81
|
Années de Pèlerinage (Years of Pilgrimage) (S.160, S.161,
|
77
82
|
S.163) is a set of three suites by Franz Liszt for solo piano. Liszt's
|
@@ -82,6 +87,5 @@ describe "Pairtree encoding" do
|
|
82
87
|
was composed well after the first two volumes and often displays less
|
83
88
|
showy virtuosity and more harmonic experimentation.
|
84
89
|
})
|
85
|
-
|
86
|
-
|
90
|
+
end
|
87
91
|
end
|
@@ -1,69 +1,67 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) +
|
2
|
-
require
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
require "pairtree"
|
3
3
|
|
4
4
|
describe "Pairtree::Obj" do
|
5
|
-
|
6
5
|
before(:all) do
|
7
6
|
@base_path = File.join(File.dirname(__FILE__), "../test_data/working")
|
8
7
|
Dir.chdir(File.join(File.dirname(__FILE__), "../test_data")) do
|
9
|
-
FileUtils.cp_r(
|
8
|
+
FileUtils.cp_r("fixtures/pairtree_root_spec", "./working")
|
10
9
|
end
|
11
10
|
@root = Pairtree.at(@base_path)
|
12
|
-
@obj = @root.get(
|
11
|
+
@obj = @root.get("pfx:abc123def")
|
13
12
|
end
|
14
|
-
|
13
|
+
|
15
14
|
after(:all) do
|
16
15
|
FileUtils.rm_rf(@base_path)
|
17
16
|
end
|
18
|
-
|
17
|
+
|
19
18
|
it "should read a file" do
|
20
|
-
@obj.read(
|
19
|
+
expect(@obj.read("content.xml")).to eql("<content/>")
|
21
20
|
end
|
22
21
|
|
23
22
|
it "should have entries" do
|
24
|
-
@obj.entries.
|
23
|
+
expect(@obj.entries).to eql(["content.xml"])
|
25
24
|
end
|
26
|
-
|
25
|
+
|
27
26
|
it "should glob" do
|
28
|
-
@obj[
|
29
|
-
@obj[
|
27
|
+
expect(@obj["*.xml"]).to eql(["content.xml"])
|
28
|
+
expect(@obj["*.txt"]).to eql([])
|
30
29
|
end
|
31
|
-
|
30
|
+
|
32
31
|
it "should be enumerable" do
|
33
|
-
block_body =
|
34
|
-
block_body.
|
32
|
+
block_body = double("block_body")
|
33
|
+
expect(block_body).to receive(:yielded).with("content.xml")
|
35
34
|
@obj.each { |file| block_body.yielded(file) }
|
36
35
|
end
|
37
|
-
|
36
|
+
|
38
37
|
describe "Call a bunch of File methods" do
|
39
38
|
before(:each) do
|
40
|
-
@target = File.join(@base_path,
|
39
|
+
@target = File.join(@base_path, "pairtree_root/ab/c1/23/de/f/abc123def/content.xml")
|
41
40
|
end
|
42
|
-
|
41
|
+
|
43
42
|
it "should open a file" do
|
44
|
-
File.
|
45
|
-
@obj.open(
|
43
|
+
expect(File).to receive(:open).with(@target, "r")
|
44
|
+
@obj.open("content.xml", "r")
|
46
45
|
end
|
47
46
|
|
48
47
|
it "should call delete" do
|
49
|
-
File.
|
50
|
-
@obj.delete(
|
48
|
+
expect(File).to receive(:delete).with(@target)
|
49
|
+
@obj.delete("content.xml")
|
51
50
|
end
|
52
51
|
|
53
52
|
it "should call link" do
|
54
|
-
File.
|
55
|
-
@obj.link(
|
53
|
+
expect(File).to receive(:link).with(@target, @target + ".2")
|
54
|
+
@obj.link("content.xml", "content.xml.2")
|
56
55
|
end
|
57
56
|
|
58
57
|
it "should call rename" do
|
59
|
-
File.
|
60
|
-
@obj.rename(
|
58
|
+
expect(File).to receive(:rename).with(@target, @target + ".new")
|
59
|
+
@obj.rename("content.xml", "content.xml.new")
|
61
60
|
end
|
62
61
|
|
63
62
|
it "should call utime" do
|
64
|
-
File.
|
65
|
-
@obj.utime(0,1,
|
63
|
+
expect(File).to receive(:utime).with(0, 1, @target)
|
64
|
+
@obj.utime(0, 1, "content.xml")
|
66
65
|
end
|
67
66
|
end
|
68
|
-
|
69
|
-
end
|
67
|
+
end
|
@@ -1,35 +1,33 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) +
|
2
|
-
require
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
require "pairtree"
|
3
3
|
|
4
4
|
describe "Pairtree::Path" do
|
5
|
-
|
6
5
|
after(:each) do
|
7
6
|
Pairtree::Path.set_leaf { |id| id }
|
8
7
|
end
|
9
|
-
|
8
|
+
|
10
9
|
it "should generate an encoded id as the leaf path by default" do
|
11
|
-
Pairtree::Path.leaf(
|
10
|
+
expect(Pairtree::Path.leaf("abc/def")).to eql("abc=def")
|
12
11
|
end
|
13
12
|
|
14
13
|
it "should accept a nil override" do
|
15
14
|
Pairtree::Path.set_leaf nil
|
16
|
-
Pairtree::Path.leaf(
|
15
|
+
expect(Pairtree::Path.leaf("abc/def")).to eql("")
|
17
16
|
end
|
18
|
-
|
17
|
+
|
19
18
|
it "should accept a scalar override" do
|
20
|
-
Pairtree::Path.set_leaf
|
21
|
-
Pairtree::Path.leaf(
|
19
|
+
Pairtree::Path.set_leaf "obj"
|
20
|
+
expect(Pairtree::Path.leaf("abc/def")).to eql("obj")
|
22
21
|
end
|
23
|
-
|
22
|
+
|
24
23
|
it "should accept a Proc override" do
|
25
|
-
lp =
|
24
|
+
lp = proc { |id| id.reverse }
|
26
25
|
Pairtree::Path.set_leaf(lp)
|
27
|
-
Pairtree::Path.leaf(
|
26
|
+
expect(Pairtree::Path.leaf("abc/def")).to eql("fed=cba")
|
28
27
|
end
|
29
|
-
|
28
|
+
|
30
29
|
it "should accept a block override" do
|
31
30
|
Pairtree::Path.set_leaf { |id| id.reverse }
|
32
|
-
Pairtree::Path.leaf(
|
31
|
+
expect(Pairtree::Path.leaf("abc/def")).to eql("fed=cba")
|
33
32
|
end
|
34
|
-
|
35
33
|
end
|
@@ -1,63 +1,61 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) +
|
2
|
-
require
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
require "pairtree"
|
3
3
|
|
4
4
|
describe "Pairtree::Root" do
|
5
|
-
|
6
5
|
before(:all) do
|
7
6
|
@base_path = File.join(File.dirname(__FILE__), "../test_data/working")
|
8
7
|
Dir.chdir(File.join(File.dirname(__FILE__), "../test_data")) do
|
9
|
-
FileUtils.cp_r(
|
8
|
+
FileUtils.cp_r("fixtures/pairtree_root_spec", "./working")
|
10
9
|
end
|
11
10
|
@root = Pairtree.at(@base_path)
|
12
11
|
end
|
13
|
-
|
12
|
+
|
14
13
|
after(:all) do
|
15
14
|
FileUtils.rm_rf(@base_path)
|
16
15
|
end
|
17
|
-
|
16
|
+
|
18
17
|
it "should have the correct prefix" do
|
19
|
-
@root.prefix.
|
18
|
+
expect(@root.prefix).to eql("pfx:")
|
20
19
|
end
|
21
|
-
|
20
|
+
|
22
21
|
it "should be in the correct location" do
|
23
|
-
File.expand_path(@root.path).
|
24
|
-
File.expand_path(@root.root).
|
22
|
+
expect(File.expand_path(@root.path)).to eql(File.expand_path(@base_path))
|
23
|
+
expect(File.expand_path(@root.root)).to eql(File.expand_path(File.join(@base_path, "pairtree_root")))
|
25
24
|
end
|
26
|
-
|
25
|
+
|
27
26
|
it "should list identifiers" do
|
28
|
-
@root.list.
|
27
|
+
expect(@root.list).to eql(["pfx:abc123def"])
|
29
28
|
end
|
30
|
-
|
29
|
+
|
31
30
|
it "should verify whether an identifier exists" do
|
32
|
-
@root.exists?(
|
33
|
-
@root.exists?(
|
31
|
+
expect(@root.exists?("pfx:abc123def")).to be true
|
32
|
+
expect(@root.exists?("pfx:abc123jkl")).to be false
|
34
33
|
end
|
35
|
-
|
34
|
+
|
36
35
|
it "should raise an exception if an invalid prefix is used" do
|
37
|
-
|
36
|
+
expect { @root.exists?("xfp:abc123def") }.to raise_error(Pairtree::IdentifierError)
|
38
37
|
end
|
39
|
-
|
38
|
+
|
40
39
|
it "should get a ppath for a valid ID" do
|
41
|
-
obj = @root.get
|
42
|
-
obj.class.
|
43
|
-
File.expand_path(obj.path).
|
40
|
+
obj = @root.get "pfx:abc123def"
|
41
|
+
expect(obj.class).to eql(Pairtree::Obj)
|
42
|
+
expect(File.expand_path(obj.path)).to eql(File.expand_path(File.join(@base_path, "pairtree_root/ab/c1/23/de/f/abc123def/")))
|
44
43
|
end
|
45
|
-
|
44
|
+
|
46
45
|
it "should raise an exception when attempting to get a ppath for an invalid ID" do
|
47
|
-
|
46
|
+
expect { @root.get "pfx:abc123jkl" }.to raise_error(Errno::ENOENT)
|
48
47
|
end
|
49
|
-
|
48
|
+
|
50
49
|
it "should create a new ppath" do
|
51
|
-
obj = @root.mk
|
52
|
-
obj.class.
|
53
|
-
File.expand_path(obj.path).
|
54
|
-
@root.exists?(
|
50
|
+
obj = @root.mk "pfx:abc123jkl"
|
51
|
+
expect(obj.class).to eql(Pairtree::Obj)
|
52
|
+
expect(File.expand_path(obj.path)).to eql(File.expand_path(File.join(@base_path, "pairtree_root/ab/c1/23/jk/l/abc123jkl/")))
|
53
|
+
expect(@root.exists?("pfx:abc123jkl")).to be true
|
55
54
|
end
|
56
|
-
|
55
|
+
|
57
56
|
it "should delete a ppath" do
|
58
|
-
@root.exists?(
|
59
|
-
@root.purge!(
|
60
|
-
@root.exists?(
|
57
|
+
expect(@root.exists?("pfx:abc123jkl")).to be true
|
58
|
+
@root.purge!("pfx:abc123jkl")
|
59
|
+
expect(@root.exists?("pfx:abc123jkl")).to be false
|
61
60
|
end
|
62
|
-
|
63
|
-
end
|
61
|
+
end
|
@@ -1,14 +1,13 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) +
|
2
|
-
require
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
require "pairtree"
|
3
3
|
|
4
4
|
describe "Pairtree" do
|
5
|
-
|
6
5
|
before(:all) do
|
7
6
|
@base_path = File.join(File.dirname(__FILE__), "../test_data/working")
|
8
7
|
end
|
9
|
-
|
8
|
+
|
10
9
|
it "should raise an error if a non-existent is specified without :create" do
|
11
|
-
|
10
|
+
expect { Pairtree.at(@base_path) }.to raise_error(Pairtree::PathError)
|
12
11
|
end
|
13
12
|
|
14
13
|
describe "new pairtree" do
|
@@ -17,53 +16,50 @@ describe "Pairtree" do
|
|
17
16
|
end
|
18
17
|
|
19
18
|
it "should create a new pairtree" do
|
20
|
-
prefix =
|
21
|
-
pt = Pairtree.at(@base_path, :
|
22
|
-
pt.prefix.
|
23
|
-
File.read(File.join(@base_path,
|
24
|
-
pt.root.
|
25
|
-
pt.pairtree_version.
|
19
|
+
prefix = "my_prefix:"
|
20
|
+
pt = Pairtree.at(@base_path, prefix: prefix, create: true)
|
21
|
+
expect(pt.prefix).to eql(prefix)
|
22
|
+
expect(File.read(File.join(@base_path, "pairtree_prefix"))).to eql(prefix)
|
23
|
+
expect(pt.root).to eql(File.join(@base_path, "pairtree_root"))
|
24
|
+
expect(pt.pairtree_version).to eql(Pairtree::SPEC_VERSION)
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
29
|
-
|
27
|
+
|
30
28
|
describe "existing pairtree" do
|
31
29
|
before(:all) do
|
32
30
|
Dir.chdir(File.join(File.dirname(__FILE__), "../test_data")) do
|
33
|
-
FileUtils.cp_r(
|
31
|
+
FileUtils.cp_r("fixtures/pairtree_root_spec", "./working")
|
34
32
|
end
|
35
33
|
end
|
36
|
-
|
34
|
+
|
37
35
|
after(:all) do
|
38
36
|
FileUtils.rm_rf(@base_path)
|
39
37
|
end
|
40
38
|
|
41
39
|
it "should raise an error if a regular file is specified as a root" do
|
42
|
-
|
40
|
+
expect { Pairtree.at(File.join(@base_path, "pairtree_prefix"), create: true) }.to raise_error(Pairtree::PathError)
|
43
41
|
end
|
44
|
-
|
42
|
+
|
45
43
|
it "should read the prefix if none is specified" do
|
46
|
-
Pairtree.at(@base_path).prefix.
|
44
|
+
expect(Pairtree.at(@base_path).prefix).to eql(File.read(File.join(@base_path, "pairtree_prefix")))
|
47
45
|
end
|
48
46
|
|
49
47
|
it "should not complain if the given prefix matches the saved prefix" do
|
50
|
-
Pairtree.at(@base_path, :
|
48
|
+
expect(Pairtree.at(@base_path, prefix: "pfx:").prefix).to eql(File.read(File.join(@base_path, "pairtree_prefix")))
|
51
49
|
end
|
52
|
-
|
50
|
+
|
53
51
|
it "should raise an error if the given prefix does not match the saved prefix" do
|
54
|
-
|
52
|
+
expect { Pairtree.at(@base_path, prefix: "wrong-prefix:") }.to raise_error(Pairtree::IdentifierError)
|
55
53
|
end
|
56
|
-
|
54
|
+
|
57
55
|
it "should not complain if the given version matches the saved version" do
|
58
|
-
Pairtree.at(@base_path, :
|
59
|
-
Pairtree.at(@base_path, :
|
56
|
+
expect(Pairtree.at(@base_path, version: Pairtree::SPEC_VERSION).pairtree_version).to eql(Pairtree::SPEC_VERSION)
|
57
|
+
expect(Pairtree.at(@base_path, version: Pairtree::SPEC_VERSION, create: true).pairtree_version).to eql(Pairtree::SPEC_VERSION)
|
60
58
|
end
|
61
59
|
|
62
60
|
it "should raise an error if the given version does not match the saved version" do
|
63
|
-
|
64
|
-
|
61
|
+
expect { Pairtree.at(@base_path, version: 0.2) }.to raise_error(Pairtree::VersionMismatch)
|
62
|
+
expect { Pairtree.at(@base_path, version: 0.2, create: true) }.to raise_error(Pairtree::VersionMismatch)
|
65
63
|
end
|
66
|
-
|
67
64
|
end
|
68
|
-
|
69
65
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,10 +1,22 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__),
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
3
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
|
4
|
+
require "bundler/setup"
|
5
|
+
require "rspec"
|
6
|
+
|
7
|
+
require "simplecov"
|
8
|
+
require "simplecov-lcov"
|
9
|
+
SimpleCov::Formatter::LcovFormatter.config do |c|
|
10
|
+
c.report_with_single_file = true
|
11
|
+
c.single_report_path = "coverage/lcov.info"
|
12
|
+
end
|
13
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
|
14
|
+
SimpleCov::Formatter::HTMLFormatter,
|
15
|
+
SimpleCov::Formatter::LcovFormatter
|
16
|
+
])
|
17
|
+
SimpleCov.start
|
18
|
+
|
19
|
+
require "pairtree"
|
7
20
|
|
8
21
|
RSpec.configure do |config|
|
9
|
-
|
10
22
|
end
|
metadata
CHANGED
@@ -1,73 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pairtree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
|
-
- Chris Beer
|
7
|
+
- Chris Beer, Bryan Hockey, Michael Slone, Aaron Elkiss
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2023-03-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rspec
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
+
version: '3.12'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.12'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: yard
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - ">="
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
49
|
-
requirement:
|
50
|
-
none: false
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ">="
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
58
69
|
description:
|
59
|
-
email:
|
70
|
+
email:
|
60
71
|
executables: []
|
61
72
|
extensions: []
|
62
73
|
extra_rdoc_files:
|
63
74
|
- LICENSE.txt
|
64
|
-
- README.
|
75
|
+
- README.md
|
65
76
|
files:
|
66
|
-
- .document
|
67
|
-
- .
|
77
|
+
- ".document"
|
78
|
+
- ".github/workflows/tests.yml"
|
79
|
+
- ".gitignore"
|
68
80
|
- Gemfile
|
69
81
|
- LICENSE.txt
|
70
|
-
- README.
|
82
|
+
- README.md
|
71
83
|
- Rakefile
|
72
84
|
- lib/pairtree.rb
|
73
85
|
- lib/pairtree/identifier.rb
|
@@ -85,39 +97,27 @@ files:
|
|
85
97
|
- spec/test_data/fixtures/pairtree_root_spec/pairtree_prefix
|
86
98
|
- spec/test_data/fixtures/pairtree_root_spec/pairtree_root/ab/c1/23/de/f/abc123def/content.xml
|
87
99
|
- spec/test_data/fixtures/pairtree_root_spec/pairtree_version0_1
|
88
|
-
homepage: http://github.com/microservices/pairtree
|
100
|
+
homepage: http://github.com/ruby-microservices/pairtree
|
89
101
|
licenses:
|
90
102
|
- Apache2
|
103
|
+
metadata: {}
|
91
104
|
post_install_message:
|
92
105
|
rdoc_options: []
|
93
106
|
require_paths:
|
94
107
|
- lib
|
95
108
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
-
none: false
|
97
109
|
requirements:
|
98
|
-
- -
|
110
|
+
- - ">="
|
99
111
|
- !ruby/object:Gem::Version
|
100
112
|
version: '0'
|
101
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
-
none: false
|
103
114
|
requirements:
|
104
|
-
- -
|
115
|
+
- - ">="
|
105
116
|
- !ruby/object:Gem::Version
|
106
117
|
version: '0'
|
107
118
|
requirements: []
|
108
|
-
|
109
|
-
rubygems_version: 1.8.10
|
119
|
+
rubygems_version: 3.3.5
|
110
120
|
signing_key:
|
111
|
-
specification_version:
|
121
|
+
specification_version: 4
|
112
122
|
summary: Ruby Pairtree implementation
|
113
|
-
test_files:
|
114
|
-
- spec/pairtree/pairtree_encoding_spec.rb
|
115
|
-
- spec/pairtree/pairtree_obj_spec.rb
|
116
|
-
- spec/pairtree/pairtree_path_spec.rb
|
117
|
-
- spec/pairtree/pairtree_root_spec.rb
|
118
|
-
- spec/pairtree/pairtree_spec.rb
|
119
|
-
- spec/spec_helper.rb
|
120
|
-
- spec/test_data/fixtures/pairtree_root_spec/pairtree_prefix
|
121
|
-
- spec/test_data/fixtures/pairtree_root_spec/pairtree_root/ab/c1/23/de/f/abc123def/content.xml
|
122
|
-
- spec/test_data/fixtures/pairtree_root_spec/pairtree_version0_1
|
123
|
-
has_rdoc:
|
123
|
+
test_files: []
|