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
def prepend(*paths)
@paths.unshift(*parse(*paths))
@paths = parse(*paths, *@paths)
self
end
def append(*paths)
@paths.concat(parse(*paths))
@paths = parse(*@paths, *paths)
self
end

View File

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