Make sure duplicates are remove from PATH.

This commit is contained in:
Markus Reiter 2017-04-28 11:22:23 +02:00
parent 0bb9b4918e
commit e70f2ec332
2 changed files with 14 additions and 2 deletions

View File

@ -4,12 +4,12 @@ class PATH
end end
def prepend(*paths) def prepend(*paths)
@paths.unshift(*parse(*paths)) @paths = parse(*paths, *@paths)
self self
end end
def append(*paths) def append(*paths)
@paths.concat(parse(*paths)) @paths = parse(*@paths, *paths)
self self
end end

View File

@ -13,6 +13,10 @@ describe PATH do
it "splits an existing PATH" do it "splits an existing PATH" do
expect(described_class.new("/path1:/path2")).to eq(["/path1", "/path2"]) expect(described_class.new("/path1:/path2")).to eq(["/path1", "/path2"])
end end
it "removes duplicates" do
expect(described_class.new("/path1", "/path1")).to eq("/path1")
end
end end
describe "#to_ary" do describe "#to_ary" do
@ -31,12 +35,20 @@ describe PATH do
it "prepends a path to a PATH" do it "prepends a path to a PATH" do
expect(described_class.new("/path1").prepend("/path2").to_str).to eq("/path2:/path1") expect(described_class.new("/path1").prepend("/path2").to_str).to eq("/path2:/path1")
end end
it "removes duplicates" do
expect(described_class.new("/path1").prepend("/path1").to_str).to eq("/path1")
end
end end
describe "#append" do describe "#append" do
it "prepends a path to a PATH" do it "prepends a path to a PATH" do
expect(described_class.new("/path1").append("/path2").to_str).to eq("/path1:/path2") expect(described_class.new("/path1").append("/path2").to_str).to eq("/path1:/path2")
end end
it "removes duplicates" do
expect(described_class.new("/path1").append("/path1").to_str).to eq("/path1")
end
end end
describe "#validate" do describe "#validate" do