Skip to content
Snippets Groups Projects
Commit 92311901 authored by Adam Smith's avatar Adam Smith
Browse files

add available languages to cask info command

add language tests for dsl

add fixtures, tests for languages info output

add extra lines
parent a1140f7b
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,7 @@ module Hbc
installation_info(cask)
repo_info(cask)
name_info(cask)
language_info(cask)
artifact_info(cask)
Installer.print_caveats(cask)
end
......@@ -51,6 +52,13 @@ module Hbc
puts cask.name.empty? ? Formatter.error("None") : cask.name
end
def self.language_info(cask)
return if cask.languages.empty?
ohai "Languages"
puts cask.languages.join(", ")
end
def self.repo_info(cask)
user, repo, token = QualifiedToken.parse(Hbc.all_tokens.detect { |t| t.split("/").last == cask.token })
......
......@@ -63,6 +63,7 @@ module Hbc
:gpg,
:homepage,
:language,
:languages,
:name,
:sha256,
:staged_path,
......@@ -139,6 +140,12 @@ module Hbc
@language = @language_blocks.default.call
end
def languages
return [] if @language_blocks.nil?
@language_blocks.keys.flatten
end
def url(*args, &block)
set_unique_stanza(:url, args.empty? && !block_given?) do
begin
......
......@@ -90,6 +90,38 @@ describe Hbc::CLI::Info, :cask do
EOS
end
it "should print languages if the Cask provided any" do
expect {
Hbc::CLI::Info.run("with-languages")
}.to output(<<-EOS.undent).to_stdout
with-languages: 1.2.3
http://example.com/local-caffeine
Not installed
From: https://github.com/caskroom/homebrew-spec/blob/master/Casks/with-languages.rb
==> Name
None
==> Languages
zh, en-US
==> Artifacts
Caffeine.app (App)
EOS
end
it 'should not print "Languages" section divider if the languages block has no output' do
expect {
Hbc::CLI::Info.run("with-conditional-languages")
}.to output(<<-EOS.undent).to_stdout
with-conditional-languages: 1.2.3
http://example.com/local-caffeine
Not installed
From: https://github.com/caskroom/homebrew-spec/blob/master/Casks/with-conditional-languages.rb
==> Name
None
==> Artifacts
Caffeine.app (App)
EOS
end
describe "when no Cask is specified" do
it "raises an exception" do
expect {
......
......@@ -177,6 +177,36 @@ describe Hbc::DSL, :cask do
expect(cask.call.sha256).to eq("xyz789")
expect(cask.call.url.to_s).to eq("https://example.org/en-US.zip")
end
it "returns empty array if no languages specified" do
cask = lambda do
Hbc::Cask.new("cask-with-apps") do
url "https://example.org/file.zip"
end
end
expect(cask.call.languages).to be_empty
end
it "returns an array of available languages" do
cask = lambda do
Hbc::Cask.new("cask-with-apps") do
language "zh" do
sha256 "abc123"
"zh-CN"
end
language "en-US", default: true do
sha256 "xyz789"
"en-US"
end
url "https://example.org/file.zip"
end
end
expect(cask.call.languages).to eq(["zh", "en-US"])
end
end
describe "app stanza" do
......
cask 'with-conditional-languages' do
version '1.2.3'
sha256 '67cdb8a02803ef37fdbf7e0be205863172e41a561ca446cd84f0d7ab35a99d94'
url "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip"
homepage 'http://example.com/local-caffeine'
app 'Caffeine.app'
end
cask 'with-languages' do
version '1.2.3'
language "zh" do
sha256 "abc123"
"zh-CN"
end
language "en-US", default: true do
sha256 "xyz789"
"en-US"
end
url "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip"
homepage 'http://example.com/local-caffeine'
app 'Caffeine.app'
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment