pairtree 0.1.0 → 0.3.0
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 +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: []
|