Improve style in audit.rb
This commit is contained in:
parent
bdeda09a9b
commit
559999fe2b
|
@ -2,22 +2,22 @@ require 'hbc/checkable'
|
|||
require 'hbc/download'
|
||||
|
||||
class Hbc::Audit
|
||||
attr_reader :cask
|
||||
|
||||
include Hbc::Checkable
|
||||
|
||||
attr_reader :cask
|
||||
|
||||
def initialize(cask)
|
||||
@cask = cask
|
||||
end
|
||||
|
||||
def run!(download = false)
|
||||
_check_required_stanzas
|
||||
_check_no_string_version_latest
|
||||
_check_sha256_no_check_if_latest
|
||||
_check_sha256_actually_256
|
||||
_check_sha256_invalid
|
||||
_check_sourceforge_download_url_format
|
||||
_check_download(download) if download
|
||||
check_required_stanzas
|
||||
check_no_string_version_latest
|
||||
check_sha256_no_check_if_latest
|
||||
check_sha256_actually_256
|
||||
check_sha256_invalid
|
||||
check_sourceforge_download_url_format
|
||||
check_download(download) if download
|
||||
return !(errors? or warnings?)
|
||||
end
|
||||
|
||||
|
@ -25,8 +25,9 @@ class Hbc::Audit
|
|||
"audit for #{cask}"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def _check_required_stanzas
|
||||
def check_required_stanzas
|
||||
odebug "Auditing required stanzas"
|
||||
%i{version sha256 url homepage}.each do |sym|
|
||||
add_error "a #{sym} stanza is required" unless cask.send(sym)
|
||||
|
@ -38,21 +39,21 @@ class Hbc::Audit
|
|||
add_error 'at least one activatable artifact stanza is required' unless installable_artifacts.size > 0
|
||||
end
|
||||
|
||||
def _check_no_string_version_latest
|
||||
def check_no_string_version_latest
|
||||
odebug "Verifying version :latest does not appear as a string ('latest')"
|
||||
if (cask.version == 'latest')
|
||||
add_error "you should use version :latest instead of version 'latest'"
|
||||
end
|
||||
end
|
||||
|
||||
def _check_sha256_no_check_if_latest
|
||||
def check_sha256_no_check_if_latest
|
||||
odebug "Verifying sha256 :no_check with version :latest"
|
||||
if cask.version == :latest and cask.sha256 != :no_check
|
||||
add_error "you should use sha256 :no_check when version is :latest"
|
||||
end
|
||||
end
|
||||
|
||||
def _check_sha256_actually_256
|
||||
def check_sha256_actually_256
|
||||
odebug "Verifying sha256 string is a legal SHA-256 digest"
|
||||
if cask.sha256.kind_of?(String)
|
||||
unless cask.sha256.length == 64 && cask.sha256[/^[0-9a-f]+$/i]
|
||||
|
@ -61,7 +62,7 @@ class Hbc::Audit
|
|||
end
|
||||
end
|
||||
|
||||
def _check_sha256_invalid
|
||||
def check_sha256_invalid
|
||||
odebug "Verifying sha256 is not a known invalid value"
|
||||
empty_sha256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
|
||||
if cask.sha256 == empty_sha256
|
||||
|
@ -69,7 +70,7 @@ class Hbc::Audit
|
|||
end
|
||||
end
|
||||
|
||||
def _check_download(download)
|
||||
def check_download(download)
|
||||
odebug "Auditing download"
|
||||
downloaded_path = download.perform
|
||||
Hbc::Verify.all(cask, downloaded_path)
|
||||
|
@ -77,14 +78,14 @@ class Hbc::Audit
|
|||
add_error "download not possible: #{e.message}"
|
||||
end
|
||||
|
||||
def _check_sourceforge_download_url_format
|
||||
def check_sourceforge_download_url_format
|
||||
odebug "Auditing URL format"
|
||||
if _bad_sourceforge_url?
|
||||
if bad_sourceforge_url?
|
||||
add_warning "SourceForge URL format incorrect. See https://github.com/caskroom/homebrew-cask/blob/master/CONTRIBUTING.md#sourceforge-urls"
|
||||
end
|
||||
end
|
||||
|
||||
def _bad_sourceforge_url?
|
||||
def bad_sourceforge_url?
|
||||
return false unless cask.url.to_s =~ /sourceforge/
|
||||
valid_url_formats = [
|
||||
%r{\Ahttps?://sourceforge\.net/projects/[^/]+/files/latest/download\Z},
|
||||
|
|
Loading…
Reference in New Issue