Merge pull request #10462 from EricFromCanada/cask-config-explicit-string
cask/config: new method for cask.config.explicit as string
This commit is contained in:
commit
bebd49b4a8
@ -127,7 +127,7 @@ module Cask
|
||||
.map { |arg| T.cast(arg.split("=", 2), [String, String]) }
|
||||
.map do |(flag, value)|
|
||||
key = flag.sub(/^--/, "")
|
||||
|
||||
# converts --language flag to :languages config key
|
||||
if key == "language"
|
||||
key = "languages"
|
||||
value = value.split(",")
|
||||
@ -182,6 +182,18 @@ module Cask
|
||||
self.class.new(explicit: other.explicit.merge(explicit))
|
||||
end
|
||||
|
||||
sig { returns(String) }
|
||||
def explicit_s
|
||||
explicit.map do |key, value|
|
||||
# inverse of #env - converts :languages config key back to --language flag
|
||||
if key == :languages
|
||||
key = "language"
|
||||
value = languages.join(",")
|
||||
end
|
||||
"#{key}: \"#{value.to_s.sub(/^#{ENV['HOME']}/, "~")}\""
|
||||
end.join(", ")
|
||||
end
|
||||
|
||||
sig { params(options: T.untyped).returns(String) }
|
||||
def to_json(**options)
|
||||
{
|
||||
|
@ -60,11 +60,22 @@ describe Cask::Config, :cask do
|
||||
end
|
||||
|
||||
describe "#explicit" do
|
||||
let(:config) { described_class.new(explicit: { appdir: "/explicit/path/to/apps" }) }
|
||||
let(:config) {
|
||||
described_class.new(explicit: { appdir: "/explicit/path/to/apps",
|
||||
languages: ["zh-TW", "en"] })
|
||||
}
|
||||
|
||||
it "returns directories explicitly given as arguments" do
|
||||
expect(config.explicit[:appdir]).to eq(Pathname("/explicit/path/to/apps"))
|
||||
end
|
||||
|
||||
it "returns array of preferred languages" do
|
||||
expect(config.explicit[:languages]).to eq(["zh-TW", "en"])
|
||||
end
|
||||
|
||||
it "returns string of explicit config keys and values" do
|
||||
expect(config.explicit_s).to eq('appdir: "/explicit/path/to/apps", language: "zh-TW,en"')
|
||||
end
|
||||
end
|
||||
|
||||
context "when installing a cask and then adding a global default dir" do
|
||||
|
Loading…
x
Reference in New Issue
Block a user