Replace Hbc.load with CaskLoader.load.

This commit is contained in:
Markus Reiter 2017-03-13 01:09:36 +01:00
parent d7af864be0
commit ed10135da4
27 changed files with 51 additions and 55 deletions

View File

@ -42,8 +42,4 @@ module Hbc
Cache.ensure_cache_exists Cache.ensure_cache_exists
Caskroom.ensure_caskroom_exists Caskroom.ensure_caskroom_exists
end end
def self.load(ref)
CaskLoader.load(ref)
end
end end

View File

@ -15,7 +15,7 @@ module Hbc
walk = lambda do |acc, deps| walk = lambda do |acc, deps|
deps.each do |dep| deps.each do |dep|
next if acc.key?(dep) next if acc.key?(dep)
succs = deps_in.call Hbc.load(dep) succs = deps_in.call CaskLoader.load(dep)
acc[dep] = succs acc[dep] = succs
walk.call(acc, succs) walk.call(acc, succs)
end end

View File

@ -40,7 +40,7 @@ module Hbc
if cask_tokens.empty? if cask_tokens.empty?
Hbc.all Hbc.all
else else
cask_tokens.map { |token| Hbc.load(token) } cask_tokens.map { |token| CaskLoader.load(token) }
end end
end end

View File

@ -8,7 +8,7 @@ module Hbc
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
ohai "Downloading external files for Cask #{cask_token}" ohai "Downloading external files for Cask #{cask_token}"
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
downloaded_path = Download.new(cask, force: force).perform downloaded_path = Download.new(cask, force: force).perform
Verify.all(cask, downloaded_path) Verify.all(cask, downloaded_path)
ohai "Success! Downloaded to -> #{downloaded_path}" ohai "Success! Downloaded to -> #{downloaded_path}"

View File

@ -8,7 +8,7 @@ module Hbc
else else
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
odebug "Opening homepage for Cask #{cask_token}" odebug "Opening homepage for Cask #{cask_token}"
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
system "/usr/bin/open", "--", cask.homepage system "/usr/bin/open", "--", cask.homepage
end end
end end

View File

@ -6,7 +6,7 @@ module Hbc
raise CaskUnspecifiedError if cask_tokens.empty? raise CaskUnspecifiedError if cask_tokens.empty?
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
odebug "Getting info for Cask #{cask_token}" odebug "Getting info for Cask #{cask_token}"
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
info(cask) info(cask)
end end

View File

@ -18,7 +18,7 @@ module Hbc
count = 0 count = 0
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
begin begin
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
Installer.new(cask, Installer.new(cask,
force: force, force: force,
skip_cask_deps: skip_cask_deps, skip_cask_deps: skip_cask_deps,

View File

@ -24,7 +24,7 @@ module Hbc
count = 0 count = 0
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
if cask.appcast.nil? if cask.appcast.nil?
opoo "Cask '#{cask}' is missing an `appcast` stanza." opoo "Cask '#{cask}' is missing an `appcast` stanza."

View File

@ -84,7 +84,7 @@ module Hbc
def modified_casks def modified_casks
return @modified_casks if defined? @modified_casks return @modified_casks if defined? @modified_casks
@modified_casks = modified_cask_files.map { |f| Hbc.load(f) } @modified_casks = modified_cask_files.map { |f| CaskLoader.load(f) }
if @modified_casks.any? if @modified_casks.any?
num_modified = @modified_casks.size num_modified = @modified_casks.size
ohai "#{Formatter.pluralize(num_modified, "modified cask")}: " \ ohai "#{Formatter.pluralize(num_modified, "modified cask")}: " \

View File

@ -2,7 +2,7 @@ module Hbc
class CLI class CLI
class InternalCheckurl < InternalUseBase class InternalCheckurl < InternalUseBase
def self.run(*args) def self.run(*args)
casks_to_check = args.empty? ? Hbc.all : args.map { |arg| Hbc.load(arg) } casks_to_check = args.empty? ? Hbc.all : args.map { |arg| CaskLoader.load(arg) }
casks_to_check.each do |cask| casks_to_check.each do |cask|
odebug "Checking URL for Cask #{cask}" odebug "Checking URL for Cask #{cask}"
checker = UrlChecker.new(cask) checker = UrlChecker.new(cask)

View File

@ -16,7 +16,7 @@ module Hbc
count = 0 count = 0
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
begin begin
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
count += 1 count += 1
cask.dumpcask cask.dumpcask
rescue StandardError => e rescue StandardError => e

View File

@ -84,7 +84,7 @@ module Hbc
print "#{cask_token}\t" if table print "#{cask_token}\t" if table
begin begin
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
rescue StandardError rescue StandardError
opoo "Cask '#{cask_token}' was not found" unless quiet opoo "Cask '#{cask_token}' was not found" unless quiet
puts "" puts ""

View File

@ -28,7 +28,7 @@ module Hbc
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
odebug "Listing files for Cask #{cask_token}" odebug "Listing files for Cask #{cask_token}"
begin begin
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
if cask.installed? if cask.installed?
if @options[:one] if @options[:one]

View File

@ -9,7 +9,7 @@ module Hbc
casks_to_check = if cask_tokens.empty? casks_to_check = if cask_tokens.empty?
Hbc.installed Hbc.installed
else else
cask_tokens.map { |token| Hbc.load(token) } cask_tokens.map { |token| CaskLoader.load(token) }
end end
casks_to_check.each do |cask| casks_to_check.each do |cask|

View File

@ -5,7 +5,7 @@ module Hbc
count = 0 count = 0
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
begin begin
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
installer = Installer.new(cask, installer = Installer.new(cask,
force: force, force: force,

View File

@ -8,7 +8,7 @@ module Hbc
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
odebug "Uninstalling Cask #{cask_token}" odebug "Uninstalling Cask #{cask_token}"
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
raise CaskNotInstalledError, cask unless cask.installed? || force raise CaskNotInstalledError, cask unless cask.installed? || force

View File

@ -6,7 +6,7 @@ module Hbc
raise CaskUnspecifiedError if cask_tokens.empty? raise CaskUnspecifiedError if cask_tokens.empty?
cask_tokens.each do |cask_token| cask_tokens.each do |cask_token|
odebug "Zapping Cask #{cask_token}" odebug "Zapping Cask #{cask_token}"
cask = Hbc.load(cask_token) cask = CaskLoader.load(cask_token)
Installer.new(cask).zap Installer.new(cask).zap
end end
end end

View File

@ -229,7 +229,7 @@ module Hbc
deps = CaskDependencies.new(@cask) deps = CaskDependencies.new(@cask)
deps.sorted.each do |dep_token| deps.sorted.each do |dep_token|
puts "#{dep_token} ..." puts "#{dep_token} ..."
dep = Hbc.load(dep_token) dep = CaskLoader.load(dep_token)
if dep.installed? if dep.installed?
puts "already installed" puts "already installed"
else else

View File

@ -23,10 +23,10 @@ module Hbc
end end
def installed def installed
# Hbc.load has some DWIM which is slow. Optimize here # CaskLoader.load has some DWIM which is slow. Optimize here
# by spoon-feeding Hbc.load fully-qualified paths. # by spoon-feeding CaskLoader.load fully-qualified paths.
# TODO: speed up Hbc::Source::Tapped (main perf drag is calling Hbc.all_tokens repeatedly) # TODO: speed up Hbc::Source::Tapped (main perf drag is calling Hbc.all_tokens repeatedly)
# TODO: ability to specify expected source when calling Hbc.load (minor perf benefit) # TODO: ability to specify expected source when calling CaskLoader.load (minor perf benefit)
Pathname.glob(caskroom.join("*")) Pathname.glob(caskroom.join("*"))
.map do |caskroom_path| .map do |caskroom_path|
token = caskroom_path.basename.to_s token = caskroom_path.basename.to_s
@ -36,9 +36,9 @@ module Hbc
end end
if path_to_cask if path_to_cask
Hbc.load(path_to_cask.join("#{token}.rb")) CaskLoader.load(path_to_cask.join("#{token}.rb"))
else else
Hbc.load(token) CaskLoader.load(token)
end end
end end
end end

View File

@ -79,7 +79,7 @@ describe Hbc::Audit, :cask do
end end
describe "#run!" do describe "#run!" do
let(:cask) { Hbc.load(cask_token) } let(:cask) { Hbc::CaskLoader.load(cask_token) }
subject { audit.run! } subject { audit.run! }
describe "required stanzas" do describe "required stanzas" do
@ -320,7 +320,7 @@ describe Hbc::Audit, :cask do
describe "audit of downloads" do describe "audit of downloads" do
let(:cask_token) { "with-binary" } let(:cask_token) { "with-binary" }
let(:cask) { Hbc.load(cask_token) } let(:cask) { Hbc::CaskLoader.load(cask_token) }
let(:download) { instance_double(Hbc::Download) } let(:download) { instance_double(Hbc::Download) }
let(:verify) { class_double(Hbc::Verify).as_stubbed_const } let(:verify) { class_double(Hbc::Verify).as_stubbed_const }
let(:error_msg) { "Download Failed" } let(:error_msg) { "Download Failed" }

View File

@ -27,20 +27,20 @@ describe Hbc::Cask, :cask do
let(:relative_tap_path) { tap_path.relative_path_from(file_dirname) } let(:relative_tap_path) { tap_path.relative_path_from(file_dirname) }
it "returns an instance of the Cask for the given token" do it "returns an instance of the Cask for the given token" do
c = Hbc.load("local-caffeine") c = Hbc::CaskLoader.load("local-caffeine")
expect(c).to be_kind_of(Hbc::Cask) expect(c).to be_kind_of(Hbc::Cask)
expect(c.token).to eq("local-caffeine") expect(c.token).to eq("local-caffeine")
end end
it "returns an instance of the Cask from a specific file location" do it "returns an instance of the Cask from a specific file location" do
c = Hbc.load("#{tap_path}/Casks/local-caffeine.rb") c = Hbc::CaskLoader.load("#{tap_path}/Casks/local-caffeine.rb")
expect(c).to be_kind_of(Hbc::Cask) expect(c).to be_kind_of(Hbc::Cask)
expect(c.token).to eq("local-caffeine") expect(c.token).to eq("local-caffeine")
end end
it "returns an instance of the Cask from a url" do it "returns an instance of the Cask from a url" do
c = shutup do c = shutup do
Hbc.load("file://#{tap_path}/Casks/local-caffeine.rb") Hbc::CaskLoader.load("file://#{tap_path}/Casks/local-caffeine.rb")
end end
expect(c).to be_kind_of(Hbc::Cask) expect(c).to be_kind_of(Hbc::Cask)
expect(c.token).to eq("local-caffeine") expect(c.token).to eq("local-caffeine")
@ -50,25 +50,25 @@ describe Hbc::Cask, :cask do
expect { expect {
url = "file://#{tap_path}/Casks/notacask.rb" url = "file://#{tap_path}/Casks/notacask.rb"
shutup do shutup do
Hbc.load(url) Hbc::CaskLoader.load(url)
end end
}.to raise_error(Hbc::CaskUnavailableError) }.to raise_error(Hbc::CaskUnavailableError)
end end
it "returns an instance of the Cask from a relative file location" do it "returns an instance of the Cask from a relative file location" do
c = Hbc.load(relative_tap_path/"Casks/local-caffeine.rb") c = Hbc::CaskLoader.load(relative_tap_path/"Casks/local-caffeine.rb")
expect(c).to be_kind_of(Hbc::Cask) expect(c).to be_kind_of(Hbc::Cask)
expect(c.token).to eq("local-caffeine") expect(c.token).to eq("local-caffeine")
end end
it "uses exact match when loading by token" do it "uses exact match when loading by token" do
expect(Hbc.load("test-opera").token).to eq("test-opera") expect(Hbc::CaskLoader.load("test-opera").token).to eq("test-opera")
expect(Hbc.load("test-opera-mail").token).to eq("test-opera-mail") expect(Hbc::CaskLoader.load("test-opera-mail").token).to eq("test-opera-mail")
end end
it "raises an error when attempting to load a Cask that doesn't exist" do it "raises an error when attempting to load a Cask that doesn't exist" do
expect { expect {
Hbc.load("notacask") Hbc::CaskLoader.load("notacask")
}.to raise_error(Hbc::CaskUnavailableError) }.to raise_error(Hbc::CaskUnavailableError)
end end
end end
@ -84,7 +84,7 @@ describe Hbc::Cask, :cask do
describe "metadata" do describe "metadata" do
it "proposes a versioned metadata directory name for each instance" do it "proposes a versioned metadata directory name for each instance" do
cask_token = "local-caffeine" cask_token = "local-caffeine"
c = Hbc.load(cask_token) c = Hbc::CaskLoader.load(cask_token)
metadata_path = Hbc.caskroom.join(cask_token, ".metadata", c.version) metadata_path = Hbc.caskroom.join(cask_token, ".metadata", c.version)
expect(c.metadata_versioned_container_path.to_s).to eq(metadata_path.to_s) expect(c.metadata_versioned_container_path.to_s).to eq(metadata_path.to_s)
end end
@ -92,13 +92,13 @@ describe Hbc::Cask, :cask do
describe "outdated" do describe "outdated" do
it "ignores the Casks that have auto_updates true (without --greedy)" do it "ignores the Casks that have auto_updates true (without --greedy)" do
c = Hbc.load("auto-updates") c = Hbc::CaskLoader.load("auto-updates")
expect(c).not_to be_outdated expect(c).not_to be_outdated
expect(c.outdated_versions).to be_empty expect(c.outdated_versions).to be_empty
end end
it "ignores the Casks that have version :latest (without --greedy)" do it "ignores the Casks that have version :latest (without --greedy)" do
c = Hbc.load("version-latest-string") c = Hbc::CaskLoader.load("version-latest-string")
expect(c).not_to be_outdated expect(c).not_to be_outdated
expect(c.outdated_versions).to be_empty expect(c.outdated_versions).to be_empty
end end

View File

@ -13,7 +13,7 @@ describe Hbc::CLI::Audit, :cask do
it "audits specified Casks if tokens are given" do it "audits specified Casks if tokens are given" do
cask_token = "nice-app" cask_token = "nice-app"
expect(Hbc).to receive(:load).with(cask_token).and_return(cask) expect(Hbc::CaskLoader).to receive(:load).with(cask_token).and_return(cask)
expect(auditor).to receive(:audit).with(cask, audit_download: false, check_token_conflicts: false) expect(auditor).to receive(:audit).with(cask, audit_download: false, check_token_conflicts: false)
@ -23,14 +23,14 @@ describe Hbc::CLI::Audit, :cask do
describe "rules for downloading a Cask" do describe "rules for downloading a Cask" do
it "does not download the Cask per default" do it "does not download the Cask per default" do
allow(Hbc).to receive(:load).and_return(cask) allow(Hbc::CaskLoader).to receive(:load).and_return(cask)
expect(auditor).to receive(:audit).with(cask, audit_download: false, check_token_conflicts: false) expect(auditor).to receive(:audit).with(cask, audit_download: false, check_token_conflicts: false)
run_audit(["casktoken"], auditor) run_audit(["casktoken"], auditor)
end end
it "download a Cask if --download flag is set" do it "download a Cask if --download flag is set" do
allow(Hbc).to receive(:load).and_return(cask) allow(Hbc::CaskLoader).to receive(:load).and_return(cask)
expect(auditor).to receive(:audit).with(cask, audit_download: true, check_token_conflicts: false) expect(auditor).to receive(:audit).with(cask, audit_download: true, check_token_conflicts: false)
run_audit(["casktoken", "--download"], auditor) run_audit(["casktoken", "--download"], auditor)
@ -39,14 +39,14 @@ describe Hbc::CLI::Audit, :cask do
describe "rules for checking token conflicts" do describe "rules for checking token conflicts" do
it "does not check for token conflicts per default" do it "does not check for token conflicts per default" do
allow(Hbc).to receive(:load).and_return(cask) allow(Hbc::CaskLoader).to receive(:load).and_return(cask)
expect(auditor).to receive(:audit).with(cask, audit_download: false, check_token_conflicts: false) expect(auditor).to receive(:audit).with(cask, audit_download: false, check_token_conflicts: false)
run_audit(["casktoken"], auditor) run_audit(["casktoken"], auditor)
end end
it "checks for token conflicts if --token-conflicts flag is set" do it "checks for token conflicts if --token-conflicts flag is set" do
allow(Hbc).to receive(:load).and_return(cask) allow(Hbc::CaskLoader).to receive(:load).and_return(cask)
expect(auditor).to receive(:audit).with(cask, audit_download: false, check_token_conflicts: true) expect(auditor).to receive(:audit).with(cask, audit_download: false, check_token_conflicts: true)
run_audit(["casktoken", "--token-conflicts"], auditor) run_audit(["casktoken", "--token-conflicts"], auditor)

View File

@ -1,6 +1,6 @@
describe Hbc::CLI::List, :cask do describe Hbc::CLI::List, :cask do
it "lists the installed Casks in a pretty fashion" do it "lists the installed Casks in a pretty fashion" do
casks = %w[local-caffeine local-transmission].map { |c| Hbc.load(c) } casks = %w[local-caffeine local-transmission].map { |c| Hbc::CaskLoader.load(c) }
casks.each do |c| casks.each do |c|
InstallHelper.install_with_caskfile(c) InstallHelper.install_with_caskfile(c)
@ -24,7 +24,7 @@ describe Hbc::CLI::List, :cask do
} }
before(:each) do before(:each) do
casks.map(&Hbc.method(:load)).each(&InstallHelper.method(:install_with_caskfile)) casks.map(&Hbc::CaskLoader.method(:load)).each(&InstallHelper.method(:install_with_caskfile))
end end
it "of all installed Casks" do it "of all installed Casks" do

View File

@ -32,7 +32,7 @@ describe Hbc::CLI::Zap, :cask do
# The above tests that implicitly. # The above tests that implicitly.
# #
# it "dispatches both uninstall and zap stanzas" do # it "dispatches both uninstall and zap stanzas" do
# with_zap = Hbc.load('with-zap') # with_zap = Hbc::CaskLoader.load('with-zap')
# #
# shutup do # shutup do
# Hbc::Installer.new(with_zap).install # Hbc::Installer.new(with_zap).install

View File

@ -17,7 +17,7 @@ describe "Satisfy Dependencies and Requirements", :cask do
context do context do
let(:cask) { Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/with-depends-on-cask.rb") } let(:cask) { Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/with-depends-on-cask.rb") }
let(:dependency) { Hbc.load(cask.depends_on.cask.first) } let(:dependency) { Hbc::CaskLoader.load(cask.depends_on.cask.first) }
it "installs the dependency of a Cask and the Cask itself" do it "installs the dependency of a Cask and the Cask itself" do
expect(subject).not_to raise_error expect(subject).not_to raise_error

View File

@ -291,7 +291,7 @@ describe "download strategies", :cask do
# does not work yet, because (for unknown reasons), the tar command # does not work yet, because (for unknown reasons), the tar command
# returns an error code when running under the test suite # returns an error code when running under the test suite
# it 'creates a tarball matching the expected checksum' do # it 'creates a tarball matching the expected checksum' do
# cask = Hbc.load('svn-download-check-cask') # cask = Hbc::CaskLoader.load('svn-download-check-cask')
# downloader = Hbc::SubversionDownloadStrategy.new(cask) # downloader = Hbc::SubversionDownloadStrategy.new(cask)
# # special mocking required for tar to have something to work with # # special mocking required for tar to have something to work with
# def downloader.fetch_repo(target, url, revision = nil, ignore_externals=false) # def downloader.fetch_repo(target, url, revision = nil, ignore_externals=false)

View File

@ -1,15 +1,15 @@
describe Hbc::Scopes, :cask do describe Hbc::Scopes, :cask do
describe "installed" do describe "installed" do
it "returns a list installed Casks by loading Casks for all the dirs that exist in the caskroom" do it "returns a list installed Casks by loading Casks for all the dirs that exist in the caskroom" do
allow(Hbc).to receive(:load) { |token| "loaded-#{token}" } allow(Hbc::CaskLoader).to receive(:load) { |token| "loaded-#{token}" }
Hbc.caskroom.join("cask-bar").mkpath Hbc.caskroom.join("cask-bar").mkpath
Hbc.caskroom.join("cask-foo").mkpath Hbc.caskroom.join("cask-foo").mkpath
installed_casks = Hbc.installed installed_casks = Hbc.installed
expect(Hbc).to have_received(:load).with("cask-bar") expect(Hbc::CaskLoader).to have_received(:load).with("cask-bar")
expect(Hbc).to have_received(:load).with("cask-foo") expect(Hbc::CaskLoader).to have_received(:load).with("cask-foo")
expect(installed_casks).to eq( expect(installed_casks).to eq(
%w[ %w[
loaded-cask-bar loaded-cask-bar
@ -18,11 +18,11 @@ describe Hbc::Scopes, :cask do
) )
end end
it "optimizes performance by resolving to a fully qualified path before calling Hbc.load" do it "optimizes performance by resolving to a fully qualified path before calling Hbc::CaskLoader.load" do
fake_tapped_cask_dir = Pathname.new(Dir.mktmpdir).join("Casks") fake_tapped_cask_dir = Pathname.new(Dir.mktmpdir).join("Casks")
absolute_path_to_cask = fake_tapped_cask_dir.join("some-cask.rb") absolute_path_to_cask = fake_tapped_cask_dir.join("some-cask.rb")
allow(Hbc).to receive(:load) allow(Hbc::CaskLoader).to receive(:load)
allow(Hbc).to receive(:all_tapped_cask_dirs) { [fake_tapped_cask_dir] } allow(Hbc).to receive(:all_tapped_cask_dirs) { [fake_tapped_cask_dir] }
Hbc.caskroom.join("some-cask").mkdir Hbc.caskroom.join("some-cask").mkdir
@ -31,7 +31,7 @@ describe Hbc::Scopes, :cask do
Hbc.installed Hbc.installed
expect(Hbc).to have_received(:load).with(absolute_path_to_cask) expect(Hbc::CaskLoader).to have_received(:load).with(absolute_path_to_cask)
end end
end end
end end