Merge pull request #1224 from reitermarkus/refactor-extensions

Refactor Cask’s extensions.
This commit is contained in:
Markus Reiter 2016-10-04 22:44:19 +02:00 committed by GitHub
commit a7a2aef803
13 changed files with 20 additions and 19 deletions

View File

@ -1,7 +1,6 @@
module Hbc; end
require "hardware"
require "hbc/extend"
require "hbc/artifact"
require "hbc/audit"
require "hbc/auditor"

View File

@ -1,5 +1,7 @@
require "hbc/artifact/moved"
require "hbc/utils/hash_validator"
module Hbc
module Artifact
class Artifact < Moved
@ -16,7 +18,7 @@ module Hbc
raise CaskInvalidError.new(@cask.token, "no source given for artifact") if source_string.nil?
@source = @cask.staged_path.join(source_string)
raise CaskInvalidError.new(@cask.token, "target required for generic artifact #{source_string}") unless target_hash.is_a?(Hash)
target_hash.assert_valid_keys(:target)
target_hash.extend(HashValidator).assert_valid_keys(:target)
@target = Pathname.new(target_hash[:target])
end
end

View File

@ -1,5 +1,7 @@
require "hbc/artifact/base"
require "hbc/utils/hash_validator"
module Hbc
module Artifact
class Pkg < Base
@ -14,7 +16,7 @@ module Hbc
@pkg_install_opts = pkg_description.shift
begin
if @pkg_install_opts.respond_to?(:keys)
@pkg_install_opts.assert_valid_keys(:allow_untrusted)
@pkg_install_opts.extend(HashValidator).assert_valid_keys(:allow_untrusted)
elsif @pkg_install_opts
raise
end

View File

@ -1,5 +1,7 @@
require "hbc/artifact/base"
require "hbc/utils/hash_validator"
module Hbc
module Artifact
class Relocated < Base
@ -46,7 +48,7 @@ module Hbc
@source = @cask.staged_path.join(source_string)
if target_hash
raise CaskInvalidError unless target_hash.respond_to?(:keys)
target_hash.assert_valid_keys(:target)
target_hash.extend(HashValidator).assert_valid_keys(:target)
@target = Hbc.send(self.class.artifact_dirmethod).join(target_hash[:target])
else
@target = Hbc.send(self.class.artifact_dirmethod).join(source.basename)

View File

@ -1,6 +1,8 @@
require "optparse"
require "shellwords"
require "extend/optparse"
require "hbc/cli/base"
require "hbc/cli/audit"
require "hbc/cli/cat"

View File

@ -1,6 +0,0 @@
# monkeypatching
require "hbc/extend/hash"
require "hbc/extend/io"
require "hbc/extend/optparse"
require "extend/pathname"
require "hbc/extend/string"

View File

@ -1,5 +0,0 @@
class String
def undent
gsub(%r{^.{#{(slice(%r{^ +}) || '').length}}}, "")
end
end

View File

@ -1,6 +1,10 @@
require "open3"
require "shellwords"
require "extend/io"
require "hbc/utils/hash_validator"
module Hbc
class SystemCommand
attr_reader :command
@ -43,7 +47,8 @@ module Hbc
attr_reader :executable, :options, :processed_output, :processed_status
def process_options!
options.assert_valid_keys :input, :print_stdout, :print_stderr, :args, :must_succeed, :sudo, :bsexec
options.extend(HashValidator)
.assert_valid_keys :input, :print_stdout, :print_stderr, :args, :must_succeed, :sudo, :bsexec
sudo_prefix = %w[/usr/bin/sudo -E --]
bsexec_prefix = ["/bin/launchctl", "bsexec", options[:bsexec] == :startup ? "/" : options[:bsexec]]
@command = [executable]

View File

@ -1,4 +1,4 @@
class Hash
module HashValidator
def assert_valid_keys(*valid_keys)
unknown_keys = keys - valid_keys
return if unknown_keys.empty?

View File

@ -79,7 +79,7 @@ module Homebrew
end
def inject_file_list(list, string)
list.inject(string) { |a, e| a << " #{e}\n" }
list.inject(string) { |a, e| a << " #{e}\n" }
end
############# END HELPERS

View File

@ -16,7 +16,7 @@ class DiagnosticChecksTest < Homebrew::TestCase
def test_inject_file_list
assert_equal "foo:\n",
@checks.inject_file_list([], "foo:\n")
assert_equal "foo:\n /a\n /b\n",
assert_equal "foo:\n /a\n /b\n",
@checks.inject_file_list(%w[/a /b], "foo:\n")
end