Merge pull request #2679 from MikeMcQuaid/parallel-rubocop
Use parallel RuboCop
This commit is contained in:
commit
744e7dd190
@ -2,9 +2,9 @@ language: ruby
|
|||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- $HOME/.gem/ruby
|
- $HOME/.gem/ruby
|
||||||
|
- $HOME/Library/Caches/Homebrew/style
|
||||||
|
- $HOME/Library/Caches/Homebrew/tests
|
||||||
- Library/Homebrew/vendor/bundle
|
- Library/Homebrew/vendor/bundle
|
||||||
# For parallel_rspec
|
|
||||||
- Library/Homebrew/tmp
|
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
|
|||||||
@ -23,23 +23,67 @@ FormulaAuditStrict/ComponentsRedundancy:
|
|||||||
FormulaAudit/Homepage:
|
FormulaAudit/Homepage:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
|
||||||
Metrics/AbcSize:
|
# `system` is a special case and aligns on second argument
|
||||||
|
Layout/AlignParameters:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
|
Layout/CaseIndentation:
|
||||||
|
EnforcedStyle: end
|
||||||
|
|
||||||
|
Layout/EmptyLineBetweenDefs:
|
||||||
|
AllowAdjacentOneLineDefs: true
|
||||||
|
|
||||||
|
Layout/IndentArray:
|
||||||
|
EnforcedStyle: special_inside_parentheses
|
||||||
|
|
||||||
|
Layout/IndentHeredoc:
|
||||||
|
EnforcedStyle: unindent
|
||||||
|
|
||||||
|
# conflicts with DSL-style path concatenation with `/`
|
||||||
|
Layout/SpaceAroundOperators:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# favor parens-less DSL-style arguments
|
||||||
|
Lint/AmbiguousOperator:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# so many of these in formulae and can't be autocorrected
|
||||||
|
Lint/AmbiguousRegexpLiteral:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# favor parens-less DSL-style arguments
|
||||||
|
Lint/AmbiguousBlockAssociation:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# assignment in conditions are useful sometimes
|
||||||
|
Lint/AssignmentInCondition:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Lint/EndAlignment:
|
||||||
|
EnforcedStyleAlignWith: variable
|
||||||
|
|
||||||
|
# so many of these in formulae and can't be autocorrected
|
||||||
|
Lint/ParenthesesAsGroupedExpression:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# TODO: try to bring down all metrics maximums
|
||||||
|
Metrics/AbcSize:
|
||||||
|
Max: 250
|
||||||
|
|
||||||
Metrics/BlockLength:
|
Metrics/BlockLength:
|
||||||
Enabled: false
|
Max: 1250
|
||||||
|
|
||||||
Metrics/ClassLength:
|
Metrics/ClassLength:
|
||||||
Enabled: false
|
Max: 1500
|
||||||
|
|
||||||
Metrics/CyclomaticComplexity:
|
Metrics/CyclomaticComplexity:
|
||||||
Enabled: false
|
Max: 75
|
||||||
|
|
||||||
Metrics/LineLength:
|
Metrics/LineLength:
|
||||||
Enabled: false
|
Max: 400
|
||||||
|
|
||||||
Metrics/MethodLength:
|
Metrics/MethodLength:
|
||||||
Enabled: false
|
Max: 250
|
||||||
|
|
||||||
Metrics/ModuleLength:
|
Metrics/ModuleLength:
|
||||||
CountComments: false
|
CountComments: false
|
||||||
@ -47,36 +91,19 @@ Metrics/ModuleLength:
|
|||||||
- '**/bin/**/*'
|
- '**/bin/**/*'
|
||||||
- '**/cmd/**/*'
|
- '**/cmd/**/*'
|
||||||
- '**/lib/**/*'
|
- '**/lib/**/*'
|
||||||
- '**/spec/**/*'
|
|
||||||
|
|
||||||
Metrics/PerceivedComplexity:
|
Metrics/PerceivedComplexity:
|
||||||
Enabled: false
|
Max: 80
|
||||||
|
|
||||||
# favor parens-less DSL-style arguments
|
# makes code less readable for minor performance increases
|
||||||
Lint/AmbiguousOperator:
|
Performance/Caller:
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
Lint/AmbiguousRegexpLiteral:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
Lint/AssignmentInCondition:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
Lint/EndAlignment:
|
|
||||||
EnforcedStyleAlignWith: variable
|
|
||||||
|
|
||||||
Lint/ParenthesesAsGroupedExpression:
|
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/Alias:
|
Style/Alias:
|
||||||
EnforcedStyle: prefer_alias
|
EnforcedStyle: prefer_alias
|
||||||
|
|
||||||
Style/AlignHash:
|
Style/AutoResourceCleanup:
|
||||||
Enabled: false
|
Enabled: true
|
||||||
|
|
||||||
# `system` is a special case and aligns on second argument
|
|
||||||
Style/AlignParameters:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
Style/BarePercentLiterals:
|
Style/BarePercentLiterals:
|
||||||
EnforcedStyle: percent_q
|
EnforcedStyle: percent_q
|
||||||
@ -84,9 +111,6 @@ Style/BarePercentLiterals:
|
|||||||
Style/BlockDelimiters:
|
Style/BlockDelimiters:
|
||||||
EnforcedStyle: line_count_based
|
EnforcedStyle: line_count_based
|
||||||
|
|
||||||
Style/CaseIndentation:
|
|
||||||
EnforcedStyle: end
|
|
||||||
|
|
||||||
Style/ClassAndModuleChildren:
|
Style/ClassAndModuleChildren:
|
||||||
EnforcedStyle: nested
|
EnforcedStyle: nested
|
||||||
|
|
||||||
@ -99,16 +123,22 @@ Style/CommandLiteral:
|
|||||||
Style/ConditionalAssignment:
|
Style/ConditionalAssignment:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
|
# most of our APIs are internal so don't require docs
|
||||||
Style/Documentation:
|
Style/Documentation:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/EmptyLineBetweenDefs:
|
Style/Encoding:
|
||||||
AllowAdjacentOneLineDefs: true
|
Enabled: true
|
||||||
|
|
||||||
# dashes in filenames are typical
|
# dashes in filenames are typical
|
||||||
Style/FileName:
|
Style/FileName:
|
||||||
Regex: !ruby/regexp /^[\w\@\-\+\.]+(\.rb)?$/
|
Regex: !ruby/regexp /^[\w\@\-\+\.]+(\.rb)?$/
|
||||||
|
|
||||||
|
# falsely flags e.g. curl formatting arguments as format strings
|
||||||
|
Style/FormatStringToken:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# so many of these in formulae and can't be autocorrected
|
||||||
Style/GuardClause:
|
Style/GuardClause:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
@ -121,13 +151,6 @@ Style/HashSyntax:
|
|||||||
- '**/lib/**/*'
|
- '**/lib/**/*'
|
||||||
- '**/spec/**/*'
|
- '**/spec/**/*'
|
||||||
|
|
||||||
# disabled until it respects line length
|
|
||||||
Style/IfUnlessModifier:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
Style/IndentArray:
|
|
||||||
EnforcedStyle: special_inside_parentheses
|
|
||||||
|
|
||||||
# only for numbers >= 1_000_000
|
# only for numbers >= 1_000_000
|
||||||
Style/NumericLiterals:
|
Style/NumericLiterals:
|
||||||
MinDigits: 7
|
MinDigits: 7
|
||||||
@ -160,13 +183,6 @@ Style/RaiseArgs:
|
|||||||
Style/RegexpLiteral:
|
Style/RegexpLiteral:
|
||||||
EnforcedStyle: slashes
|
EnforcedStyle: slashes
|
||||||
|
|
||||||
# conflicts with DSL-style path concatenation with `/`
|
|
||||||
Style/SpaceAroundOperators:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
Style/SingleLineBlockParams:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
# not a problem for typical shell users
|
# not a problem for typical shell users
|
||||||
Style/SpecialGlobalVars:
|
Style/SpecialGlobalVars:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
@ -179,17 +195,22 @@ Style/StringLiterals:
|
|||||||
Style/StringLiteralsInInterpolation:
|
Style/StringLiteralsInInterpolation:
|
||||||
EnforcedStyle: double_quotes
|
EnforcedStyle: double_quotes
|
||||||
|
|
||||||
|
Style/SymbolArray:
|
||||||
|
EnforcedStyle: brackets
|
||||||
|
|
||||||
Style/TernaryParentheses:
|
Style/TernaryParentheses:
|
||||||
Enabled: false
|
EnforcedStyle: require_parentheses_when_complex
|
||||||
|
|
||||||
# makes diffs nicer
|
# makes diffs nicer
|
||||||
Style/TrailingCommaInLiteral:
|
Style/TrailingCommaInLiteral:
|
||||||
EnforcedStyleForMultiline: comma
|
EnforcedStyleForMultiline: comma
|
||||||
|
|
||||||
Style/TrailingCommaInArguments:
|
Style/TrailingCommaInArguments:
|
||||||
EnforcedStyleForMultiline: comma
|
EnforcedStyleForMultiline: comma
|
||||||
|
|
||||||
|
# we have too many variables like sha256 where this harms readability
|
||||||
Style/VariableNumber:
|
Style/VariableNumber:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/WordArray:
|
Style/WordArray:
|
||||||
Enabled: false
|
MinSize: 4
|
||||||
|
|||||||
@ -9,9 +9,8 @@ AllCops:
|
|||||||
- '**/Casks/**/*'
|
- '**/Casks/**/*'
|
||||||
- '**/vendor/**/*'
|
- '**/vendor/**/*'
|
||||||
|
|
||||||
Style/BlockDelimiters:
|
Layout/MultilineMethodCallIndentation:
|
||||||
Exclude:
|
Exclude:
|
||||||
- '**/cask/spec/**/*'
|
|
||||||
- '**/*_spec.rb'
|
- '**/*_spec.rb'
|
||||||
|
|
||||||
# so many of these in formulae but none in here
|
# so many of these in formulae but none in here
|
||||||
@ -27,16 +26,13 @@ Lint/NestedMethodDefinition:
|
|||||||
Lint/ParenthesesAsGroupedExpression:
|
Lint/ParenthesesAsGroupedExpression:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
|
||||||
Metrics/ModuleLength:
|
|
||||||
CountComments: false
|
|
||||||
Exclude:
|
|
||||||
- 'cask/lib/hbc/locations.rb'
|
|
||||||
- 'cask/lib/hbc/macos.rb'
|
|
||||||
- 'cask/lib/hbc/utils.rb'
|
|
||||||
|
|
||||||
Metrics/ParameterLists:
|
Metrics/ParameterLists:
|
||||||
CountKeywordArgs: false
|
CountKeywordArgs: false
|
||||||
|
|
||||||
|
Style/BlockDelimiters:
|
||||||
|
Exclude:
|
||||||
|
- '**/*_spec.rb'
|
||||||
|
|
||||||
# so many of these in formulae but none in here
|
# so many of these in formulae but none in here
|
||||||
Style/GuardClause:
|
Style/GuardClause:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
|||||||
@ -116,7 +116,6 @@ begin
|
|||||||
odie "Unknown command: #{cmd}"
|
odie "Unknown command: #{cmd}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
rescue UsageError => e
|
rescue UsageError => e
|
||||||
require "cmd/help"
|
require "cmd/help"
|
||||||
Homebrew.help cmd, usage_error: e.message
|
Homebrew.help cmd, usage_error: e.message
|
||||||
|
|||||||
@ -10,7 +10,7 @@ module Hbc
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.artifact_english_article
|
def self.artifact_english_article
|
||||||
@artifact_english_article ||= artifact_english_name =~ /^[aeiou]/i ? "an" : "a"
|
@artifact_english_article ||= (artifact_english_name =~ /^[aeiou]/i) ? "an" : "a"
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.artifact_dsl_key
|
def self.artifact_dsl_key
|
||||||
@ -43,7 +43,7 @@ module Hbc
|
|||||||
unless unknown_keys.empty?
|
unless unknown_keys.empty?
|
||||||
opoo %Q{Unknown arguments to #{description} -- #{unknown_keys.inspect} (ignored). Running "brew update; brew cleanup; brew cask cleanup" will likely fix it.}
|
opoo %Q{Unknown arguments to #{description} -- #{unknown_keys.inspect} (ignored). Running "brew update; brew cleanup; brew cask cleanup" will likely fix it.}
|
||||||
end
|
end
|
||||||
arguments.reject! { |k| !permitted_keys.include?(k) }
|
arguments.select! { |k| permitted_keys.include?(k) }
|
||||||
|
|
||||||
# key warnings
|
# key warnings
|
||||||
override_keys = override_arguments.keys
|
override_keys = override_arguments.keys
|
||||||
|
|||||||
@ -197,9 +197,7 @@ module Hbc
|
|||||||
paths.each do |path|
|
paths.each do |path|
|
||||||
resolved_path = Pathname.new(path)
|
resolved_path = Pathname.new(path)
|
||||||
|
|
||||||
if path.start_with?("~")
|
resolved_path = resolved_path.expand_path if path.start_with?("~")
|
||||||
resolved_path = resolved_path.expand_path
|
|
||||||
end
|
|
||||||
|
|
||||||
if resolved_path.relative? || resolved_path.split.any? { |part| part.to_s == ".." }
|
if resolved_path.relative? || resolved_path.split.any? { |part| part.to_s == ".." }
|
||||||
opoo "Skipping #{Formatter.identifier(action)} for relative path '#{path}'."
|
opoo "Skipping #{Formatter.identifier(action)} for relative path '#{path}'."
|
||||||
|
|||||||
@ -66,7 +66,7 @@ module Hbc
|
|||||||
return [] if current == version
|
return [] if current == version
|
||||||
|
|
||||||
# collect all installed versions that are different than tap version and return them
|
# collect all installed versions that are different than tap version and return them
|
||||||
installed.select { |v| v != version }
|
installed.reject { |v| v == version }
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_s
|
def to_s
|
||||||
|
|||||||
@ -54,7 +54,7 @@ module Hbc
|
|||||||
|
|
||||||
class FromURILoader < FromPathLoader
|
class FromURILoader < FromPathLoader
|
||||||
def self.can_load?(ref)
|
def self.can_load?(ref)
|
||||||
!(ref.to_s !~ ::URI.regexp)
|
ref.to_s =~ ::URI.regexp
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize(url)
|
def initialize(url)
|
||||||
@ -80,7 +80,7 @@ module Hbc
|
|||||||
|
|
||||||
class FromTapLoader < FromPathLoader
|
class FromTapLoader < FromPathLoader
|
||||||
def self.can_load?(ref)
|
def self.can_load?(ref)
|
||||||
!(ref.to_s !~ HOMEBREW_TAP_CASK_REGEX)
|
ref.to_s =~ HOMEBREW_TAP_CASK_REGEX
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize(tapped_name)
|
def initialize(tapped_name)
|
||||||
|
|||||||
@ -140,9 +140,7 @@ module Hbc
|
|||||||
command_name, *args = *@args
|
command_name, *args = *@args
|
||||||
command = help? ? "help" : self.class.lookup_command(command_name)
|
command = help? ? "help" : self.class.lookup_command(command_name)
|
||||||
|
|
||||||
unless ENV["MACOS_VERSION"].nil?
|
MacOS.full_version = ENV["MACOS_VERSION"] unless ENV["MACOS_VERSION"].nil?
|
||||||
MacOS.full_version = ENV["MACOS_VERSION"]
|
|
||||||
end
|
|
||||||
|
|
||||||
Hbc.default_tap.install unless Hbc.default_tap.installed?
|
Hbc.default_tap.install unless Hbc.default_tap.installed?
|
||||||
Hbc.init if self.class.should_init?(command)
|
Hbc.init if self.class.should_init?(command)
|
||||||
|
|||||||
@ -15,7 +15,7 @@ module Hbc
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.abstract?
|
def self.abstract?
|
||||||
!(name.split("::").last !~ /^Abstract[^a-z]/)
|
name.split("::").last =~ /^Abstract[^a-z]/
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.visible
|
def self.visible
|
||||||
|
|||||||
@ -17,17 +17,17 @@ module Hbc
|
|||||||
ohai "Contents of $LOAD_PATH", self.class.render_load_path($LOAD_PATH)
|
ohai "Contents of $LOAD_PATH", self.class.render_load_path($LOAD_PATH)
|
||||||
ohai "Environment Variables"
|
ohai "Environment Variables"
|
||||||
|
|
||||||
environment_variables = [
|
environment_variables = %w[
|
||||||
"RUBYLIB",
|
RUBYLIB
|
||||||
"RUBYOPT",
|
RUBYOPT
|
||||||
"RUBYPATH",
|
RUBYPATH
|
||||||
"RBENV_VERSION",
|
RBENV_VERSION
|
||||||
"CHRUBY_VERSION",
|
CHRUBY_VERSION
|
||||||
"GEM_HOME",
|
GEM_HOME
|
||||||
"GEM_PATH",
|
GEM_PATH
|
||||||
"BUNDLE_PATH",
|
BUNDLE_PATH
|
||||||
"PATH",
|
PATH
|
||||||
"SHELL",
|
SHELL
|
||||||
]
|
]
|
||||||
|
|
||||||
(self.class.locale_variables + environment_variables).sort.each(&self.class.method(:render_env_var))
|
(self.class.locale_variables + environment_variables).sort.each(&self.class.method(:render_env_var))
|
||||||
|
|||||||
@ -49,7 +49,7 @@ module Hbc
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.name_info(cask)
|
def self.name_info(cask)
|
||||||
ohai cask.name.size > 1 ? "Names" : "Name"
|
ohai((cask.name.size > 1) ? "Names" : "Name")
|
||||||
puts cask.name.empty? ? Formatter.error("None") : cask.name
|
puts cask.name.empty? ? Formatter.error("None") : cask.name
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ module Hbc
|
|||||||
DSL::ORDINARY_ARTIFACT_TYPES.each do |type|
|
DSL::ORDINARY_ARTIFACT_TYPES.each do |type|
|
||||||
next if cask.artifacts[type].empty?
|
next if cask.artifacts[type].empty?
|
||||||
cask.artifacts[type].each do |artifact|
|
cask.artifacts[type].each do |artifact|
|
||||||
activatable_item = type == :stage_only ? "<none>" : artifact.first
|
activatable_item = (type == :stage_only) ? "<none>" : artifact.first
|
||||||
puts "#{activatable_item} (#{type})"
|
puts "#{activatable_item} (#{type})"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -43,7 +43,7 @@ module Hbc
|
|||||||
if checkpoint.nil?
|
if checkpoint.nil?
|
||||||
onoe "Could not retrieve `appcast` checkpoint for cask '#{cask}': #{result[:command_result].stderr}"
|
onoe "Could not retrieve `appcast` checkpoint for cask '#{cask}': #{result[:command_result].stderr}"
|
||||||
else
|
else
|
||||||
puts cask_tokens.count > 1 ? "#{checkpoint} #{cask}": checkpoint
|
puts((cask_tokens.count > 1) ? "#{checkpoint} #{cask}": checkpoint)
|
||||||
count += 1
|
count += 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -12,7 +12,7 @@ module Hbc
|
|||||||
def run
|
def run
|
||||||
retval = args.any? ? list : list_installed
|
retval = args.any? ? list : list_installed
|
||||||
# retval is ternary: true/false/nil
|
# retval is ternary: true/false/nil
|
||||||
if retval.nil? && !args.any?
|
if retval.nil? && args.none?
|
||||||
opoo "nothing to list" # special case: avoid exit code
|
opoo "nothing to list" # special case: avoid exit code
|
||||||
elsif retval.nil?
|
elsif retval.nil?
|
||||||
raise CaskError, "nothing to list"
|
raise CaskError, "nothing to list"
|
||||||
|
|||||||
@ -11,7 +11,8 @@ module Hbc
|
|||||||
|
|
||||||
def run
|
def run
|
||||||
install_rubocop
|
install_rubocop
|
||||||
system({ "XDG_CACHE_HOME" => HOMEBREW_CACHE }, "rubocop", *rubocop_args, "--", *cask_paths)
|
cache_env = { "XDG_CACHE_HOME" => "#{HOMEBREW_CACHE}/style" }
|
||||||
|
system(cache_env, "rubocop", *rubocop_args, "--", *cask_paths)
|
||||||
raise CaskError, "style check failed" unless $CHILD_STATUS.success?
|
raise CaskError, "style check failed" unless $CHILD_STATUS.success?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|||||||
@ -86,7 +86,7 @@ module Hbc
|
|||||||
Dir.chdir(mount) do
|
Dir.chdir(mount) do
|
||||||
Dir.glob("**/*", File::FNM_DOTMATCH).map do |path|
|
Dir.glob("**/*", File::FNM_DOTMATCH).map do |path|
|
||||||
next if skip_path?(Pathname(path))
|
next if skip_path?(Pathname(path))
|
||||||
path == "." ? path : path.prepend("./")
|
(path == ".") ? path : path.prepend("./")
|
||||||
end.compact.join("\n").concat("\n")
|
end.compact.join("\n").concat("\n")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -212,7 +212,7 @@ module Hbc
|
|||||||
class SubversionDownloadStrategy < HbVCSDownloadStrategy
|
class SubversionDownloadStrategy < HbVCSDownloadStrategy
|
||||||
def cache_tag
|
def cache_tag
|
||||||
# TODO: pass versions as symbols, support :head here
|
# TODO: pass versions as symbols, support :head here
|
||||||
version == "head" ? "svn-HEAD" : "svn"
|
(version == "head") ? "svn-HEAD" : "svn"
|
||||||
end
|
end
|
||||||
|
|
||||||
def repo_valid?
|
def repo_valid?
|
||||||
|
|||||||
@ -119,9 +119,7 @@ module Hbc
|
|||||||
def language_eval
|
def language_eval
|
||||||
return @language if instance_variable_defined?(:@language)
|
return @language if instance_variable_defined?(:@language)
|
||||||
|
|
||||||
if @language_blocks.nil? || @language_blocks.empty?
|
return @language = nil if @language_blocks.nil? || @language_blocks.empty?
|
||||||
return @language = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
MacOS.languages.map(&Locale.method(:parse)).each do |locale|
|
MacOS.languages.map(&Locale.method(:parse)).each do |locale|
|
||||||
key = @language_blocks.keys.detect do |strings|
|
key = @language_blocks.keys.detect do |strings|
|
||||||
|
|||||||
@ -113,7 +113,7 @@ module Hbc
|
|||||||
end
|
end
|
||||||
|
|
||||||
def to_s
|
def to_s
|
||||||
"Cask '#{token}' definition is invalid" + (!submsg.empty? ? ": #{submsg}" : "")
|
"Cask '#{token}' definition is invalid#{": #{submsg}" unless submsg.empty?}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -94,7 +94,7 @@ module Hbc
|
|||||||
loop do
|
loop do
|
||||||
readable_sources = IO.select(sources)[0]
|
readable_sources = IO.select(sources)[0]
|
||||||
readable_sources.delete_if(&:eof?).first(1).each do |source|
|
readable_sources.delete_if(&:eof?).first(1).each do |source|
|
||||||
type = (source == sources[0] ? :stdout : :stderr)
|
type = ((source == sources[0]) ? :stdout : :stderr)
|
||||||
begin
|
begin
|
||||||
yield(type, source.readline_nonblock || "")
|
yield(type, source.readline_nonblock || "")
|
||||||
rescue IO::WaitReadable, EOFError
|
rescue IO::WaitReadable, EOFError
|
||||||
|
|||||||
@ -38,6 +38,7 @@
|
|||||||
#: `--include-optional`, and `--skip-recommended` as documented above.
|
#: `--include-optional`, and `--skip-recommended` as documented above.
|
||||||
|
|
||||||
# encoding: UTF-8
|
# encoding: UTF-8
|
||||||
|
|
||||||
require "formula"
|
require "formula"
|
||||||
require "ostruct"
|
require "ostruct"
|
||||||
|
|
||||||
@ -112,10 +113,10 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
deps = f.deps.reject do |dep|
|
deps = f.deps.reject do |dep|
|
||||||
ignores.any? { |ignore| dep.send(ignore) } && !includes.any? { |include| dep.send(include) }
|
ignores.any? { |ignore| dep.send(ignore) } && includes.none? { |include| dep.send(include) }
|
||||||
end
|
end
|
||||||
reqs = f.requirements.reject do |req|
|
reqs = f.requirements.reject do |req|
|
||||||
ignores.any? { |ignore| req.send(ignore) } && !includes.any? { |include| req.send(include) }
|
ignores.any? { |ignore| req.send(ignore) } && includes.none? { |include| req.send(include) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -160,7 +161,7 @@ module Homebrew
|
|||||||
else
|
else
|
||||||
"├──"
|
"├──"
|
||||||
end
|
end
|
||||||
prefix_ext = i == max ? " " : "│ "
|
prefix_ext = (i == max) ? " " : "│ "
|
||||||
puts prefix + "#{chr} #{dep_display_name(dep)}"
|
puts prefix + "#{chr} #{dep_display_name(dep)}"
|
||||||
recursive_deps_tree(Formulary.factory(dep.name), prefix + prefix_ext)
|
recursive_deps_tree(Formulary.factory(dep.name), prefix + prefix_ext)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
HOMEBREW_HELP = <<-EOS.freeze
|
HOMEBREW_HELP = <<-EOS.unindent.freeze
|
||||||
Example usage:
|
Example usage:
|
||||||
brew search [TEXT|/REGEX/]
|
brew search [TEXT|/REGEX/]
|
||||||
brew (info|home|options) [FORMULA...]
|
brew (info|home|options) [FORMULA...]
|
||||||
|
|||||||
@ -72,9 +72,7 @@ module Homebrew
|
|||||||
puts "#{n} symlinks created"
|
puts "#{n} symlinks created"
|
||||||
end
|
end
|
||||||
|
|
||||||
if keg_only && !ARGV.homebrew_developer?
|
puts_keg_only_path_message(keg) if keg_only && !ARGV.homebrew_developer?
|
||||||
puts_keg_only_path_message(keg)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -73,7 +73,11 @@ module Homebrew
|
|||||||
args = %w[
|
args = %w[
|
||||||
--force-exclusion
|
--force-exclusion
|
||||||
]
|
]
|
||||||
args << "--auto-correct" if fix
|
if fix
|
||||||
|
args << "--auto-correct"
|
||||||
|
else
|
||||||
|
args << "--parallel"
|
||||||
|
end
|
||||||
|
|
||||||
if options[:except_cops]
|
if options[:except_cops]
|
||||||
options[:except_cops].map! { |cop| RuboCop::Cop::Cop.registry.qualified_cop_name(cop.to_s, "") }
|
options[:except_cops].map! { |cop| RuboCop::Cop::Cop.registry.qualified_cop_name(cop.to_s, "") }
|
||||||
@ -101,14 +105,16 @@ module Homebrew
|
|||||||
args += files
|
args += files
|
||||||
end
|
end
|
||||||
|
|
||||||
|
cache_env = { "XDG_CACHE_HOME" => "#{HOMEBREW_CACHE}/style" }
|
||||||
|
|
||||||
case output_type
|
case output_type
|
||||||
when :print
|
when :print
|
||||||
args << "--display-cop-names" if ARGV.include? "--display-cop-names"
|
args << "--display-cop-names" if ARGV.include? "--display-cop-names"
|
||||||
args << "--format" << "simple" if files
|
args << "--format" << "simple" if files
|
||||||
system({ "XDG_CACHE_HOME" => HOMEBREW_CACHE }, "rubocop", *args)
|
system(cache_env, "rubocop", *args)
|
||||||
!$?.success?
|
!$?.success?
|
||||||
when :json
|
when :json
|
||||||
json, _, status = Open3.capture3({ "XDG_CACHE_HOME" => HOMEBREW_CACHE }, "rubocop", "--format", "json", *args)
|
json, _, status = Open3.capture3(cache_env, "rubocop", "--format", "json", *args)
|
||||||
# exit status of 1 just means violations were found; other numbers mean
|
# exit status of 1 just means violations were found; other numbers mean
|
||||||
# execution errors.
|
# execution errors.
|
||||||
# exitstatus can also be nil if RuboCop process crashes, e.g. due to
|
# exitstatus can also be nil if RuboCop process crashes, e.g. due to
|
||||||
|
|||||||
@ -98,10 +98,10 @@ module Homebrew
|
|||||||
reqs = reqs_by_formula.map(&:last)
|
reqs = reqs_by_formula.map(&:last)
|
||||||
else
|
else
|
||||||
deps = f.deps.reject do |dep|
|
deps = f.deps.reject do |dep|
|
||||||
ignores.any? { |ignore| dep.send(ignore) } && !includes.any? { |include| dep.send(include) }
|
ignores.any? { |ignore| dep.send(ignore) } && includes.none? { |include| dep.send(include) }
|
||||||
end
|
end
|
||||||
reqs = f.requirements.reject do |req|
|
reqs = f.requirements.reject do |req|
|
||||||
ignores.any? { |ignore| req.send(ignore) } && !includes.any? { |include| req.send(include) }
|
ignores.any? { |ignore| req.send(ignore) } && includes.none? { |include| req.send(include) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
next true if deps.any? do |dep|
|
next true if deps.any? do |dep|
|
||||||
|
|||||||
@ -19,5 +19,5 @@ end
|
|||||||
|
|
||||||
def plural(n, s = "s")
|
def plural(n, s = "s")
|
||||||
odeprecated "#plural", "Formatter.pluralize"
|
odeprecated "#plural", "Formatter.pluralize"
|
||||||
n == 1 ? "" : s
|
(n == 1) ? "" : s
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
# RuboCop version used for `brew style` and `brew cask style`
|
# RuboCop version used for `brew style` and `brew cask style`
|
||||||
HOMEBREW_RUBOCOP_VERSION = "0.47.1".freeze
|
HOMEBREW_RUBOCOP_VERSION = "0.49.1".freeze
|
||||||
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.12.0".freeze # has to be updated when RuboCop version changes
|
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.13.0".freeze # has to be updated when RuboCop version changes
|
||||||
|
|||||||
@ -16,7 +16,7 @@ class CxxStdlib
|
|||||||
if type && ![:libstdcxx, :libcxx].include?(type)
|
if type && ![:libstdcxx, :libcxx].include?(type)
|
||||||
raise ArgumentError, "Invalid C++ stdlib type: #{type}"
|
raise ArgumentError, "Invalid C++ stdlib type: #{type}"
|
||||||
end
|
end
|
||||||
klass = compiler.to_s =~ GNU_GCC_REGEXP ? GnuStdlib : AppleStdlib
|
klass = (compiler.to_s =~ GNU_GCC_REGEXP) ? GnuStdlib : AppleStdlib
|
||||||
klass.new(type, compiler)
|
klass.new(type, compiler)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -121,7 +121,7 @@ class Descriptions
|
|||||||
blank = Formatter.warning("[no description]")
|
blank = Formatter.warning("[no description]")
|
||||||
@descriptions.keys.sort.each do |full_name|
|
@descriptions.keys.sort.each do |full_name|
|
||||||
short_name = short_names[full_name]
|
short_name = short_names[full_name]
|
||||||
printed_name = short_name_counts[short_name] == 1 ? short_name : full_name
|
printed_name = (short_name_counts[short_name] == 1) ? short_name : full_name
|
||||||
description = @descriptions[full_name] || blank
|
description = @descriptions[full_name] || blank
|
||||||
puts "#{Tty.bold}#{printed_name}:#{Tty.reset} #{description}"
|
puts "#{Tty.bold}#{printed_name}:#{Tty.reset} #{description}"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -591,9 +591,7 @@ class FormulaAuditor
|
|||||||
def audit_homepage
|
def audit_homepage
|
||||||
homepage = formula.homepage
|
homepage = formula.homepage
|
||||||
|
|
||||||
if homepage.nil? || homepage.empty?
|
return if homepage.nil? || homepage.empty?
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
return unless @online
|
return unless @online
|
||||||
|
|
||||||
@ -988,9 +986,7 @@ class FormulaAuditor
|
|||||||
problem ":apr is deprecated. Usage should be \"apr-util\""
|
problem ":apr is deprecated. Usage should be \"apr-util\""
|
||||||
end
|
end
|
||||||
|
|
||||||
if line =~ /depends_on :tex/
|
problem ":tex is deprecated" if line =~ /depends_on :tex/
|
||||||
problem ":tex is deprecated"
|
|
||||||
end
|
|
||||||
|
|
||||||
if line =~ /depends_on\s+['"](.+)['"]\s+=>\s+:(lua|perl|python|ruby)(\d*)/
|
if line =~ /depends_on\s+['"](.+)['"]\s+=>\s+:(lua|perl|python|ruby)(\d*)/
|
||||||
problem "#{$2} modules should be vendored rather than use deprecated `depends_on \"#{$1}\" => :#{$2}#{$3}`"
|
problem "#{$2} modules should be vendored rather than use deprecated `depends_on \"#{$1}\" => :#{$2}#{$3}`"
|
||||||
|
|||||||
@ -314,8 +314,8 @@ module Homebrew
|
|||||||
|
|
||||||
old_spec = f.bottle_specification
|
old_spec = f.bottle_specification
|
||||||
if ARGV.include?("--keep-old") && !old_spec.checksums.empty?
|
if ARGV.include?("--keep-old") && !old_spec.checksums.empty?
|
||||||
mismatches = [:root_url, :prefix, :cellar, :rebuild].select do |key|
|
mismatches = [:root_url, :prefix, :cellar, :rebuild].reject do |key|
|
||||||
old_spec.send(key) != bottle.send(key)
|
old_spec.send(key) == bottle.send(key)
|
||||||
end
|
end
|
||||||
mismatches.delete(:cellar) if old_spec.cellar == :any && bottle.cellar == :any_skip_relocation
|
mismatches.delete(:cellar) if old_spec.cellar == :any && bottle.cellar == :any_skip_relocation
|
||||||
unless mismatches.empty?
|
unless mismatches.empty?
|
||||||
@ -382,9 +382,7 @@ module Homebrew
|
|||||||
bottle = BottleSpecification.new
|
bottle = BottleSpecification.new
|
||||||
bottle.root_url bottle_hash["bottle"]["root_url"]
|
bottle.root_url bottle_hash["bottle"]["root_url"]
|
||||||
cellar = bottle_hash["bottle"]["cellar"]
|
cellar = bottle_hash["bottle"]["cellar"]
|
||||||
if cellar == "any" || cellar == "any_skip_relocation"
|
cellar = cellar.to_sym if ["any", "any_skip_relocation"].include?(cellar)
|
||||||
cellar = cellar.to_sym
|
|
||||||
end
|
|
||||||
bottle.cellar cellar
|
bottle.cellar cellar
|
||||||
bottle.prefix bottle_hash["bottle"]["prefix"]
|
bottle.prefix bottle_hash["bottle"]["prefix"]
|
||||||
bottle.rebuild bottle_hash["bottle"]["rebuild"]
|
bottle.rebuild bottle_hash["bottle"]["rebuild"]
|
||||||
|
|||||||
@ -21,7 +21,7 @@ module Homebrew
|
|||||||
# If no brews are listed, open the project root in an editor.
|
# If no brews are listed, open the project root in an editor.
|
||||||
if ARGV.named.empty?
|
if ARGV.named.empty?
|
||||||
editor = File.basename which_editor
|
editor = File.basename which_editor
|
||||||
if editor == "mate" || editor == "subl"
|
if ["mate", "subl"].include?(editor)
|
||||||
# If the user is using TextMate or Sublime Text,
|
# If the user is using TextMate or Sublime Text,
|
||||||
# give a nice project view instead.
|
# give a nice project view instead.
|
||||||
exec_editor HOMEBREW_REPOSITORY+"bin/brew",
|
exec_editor HOMEBREW_REPOSITORY+"bin/brew",
|
||||||
|
|||||||
@ -60,9 +60,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
Homebrew.install_gem_setup_path! "bundler"
|
Homebrew.install_gem_setup_path! "bundler"
|
||||||
unless quiet_system("bundle", "check")
|
system "bundle", "install" unless quiet_system("bundle", "check")
|
||||||
system "bundle", "install"
|
|
||||||
end
|
|
||||||
|
|
||||||
parallel = true
|
parallel = true
|
||||||
|
|
||||||
@ -91,12 +89,12 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
args = ["-I", HOMEBREW_LIBRARY_PATH/"test"]
|
args = ["-I", HOMEBREW_LIBRARY_PATH/"test"]
|
||||||
args += %w[
|
args += %W[
|
||||||
--color
|
--color
|
||||||
--require spec_helper
|
--require spec_helper
|
||||||
--format progress
|
--format progress
|
||||||
--format ParallelTests::RSpec::RuntimeLogger
|
--format ParallelTests::RSpec::RuntimeLogger
|
||||||
--out tmp/parallel_runtime_rspec.log
|
--out #{HOMEBREW_CACHE}/tests/parallel_runtime_rspec.log
|
||||||
]
|
]
|
||||||
|
|
||||||
args << "--seed" << ARGV.next if ARGV.include? "--seed"
|
args << "--seed" << ARGV.next if ARGV.include? "--seed"
|
||||||
|
|||||||
@ -2,6 +2,7 @@ class String
|
|||||||
def undent
|
def undent
|
||||||
gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "")
|
gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "")
|
||||||
end
|
end
|
||||||
|
alias unindent undent
|
||||||
|
|
||||||
# eg:
|
# eg:
|
||||||
# if foo then <<-EOS.undent_________________________________________________________72
|
# if foo then <<-EOS.undent_________________________________________________________72
|
||||||
|
|||||||
@ -61,9 +61,9 @@ module FormulaCellarChecks
|
|||||||
|
|
||||||
valid_extensions = %w[.a .dylib .framework .jnilib .la .o .so
|
valid_extensions = %w[.a .dylib .framework .jnilib .la .o .so
|
||||||
.jar .prl .pm .sh]
|
.jar .prl .pm .sh]
|
||||||
non_libraries = formula.lib.children.select do |g|
|
non_libraries = formula.lib.children.reject do |g|
|
||||||
next if g.directory?
|
next if g.directory?
|
||||||
!valid_extensions.include? g.extname
|
valid_extensions.include? g.extname
|
||||||
end
|
end
|
||||||
return if non_libraries.empty?
|
return if non_libraries.empty?
|
||||||
|
|
||||||
|
|||||||
@ -472,7 +472,7 @@ class FormulaInstaller
|
|||||||
|
|
||||||
def effective_build_options_for(dependent, inherited_options = [])
|
def effective_build_options_for(dependent, inherited_options = [])
|
||||||
args = dependent.build.used_options
|
args = dependent.build.used_options
|
||||||
args |= dependent == formula ? options : inherited_options
|
args |= (dependent == formula) ? options : inherited_options
|
||||||
args |= Tab.for_formula(dependent).used_options
|
args |= Tab.for_formula(dependent).used_options
|
||||||
args &= dependent.options
|
args &= dependent.options
|
||||||
BuildOptions.new(args, dependent.options)
|
BuildOptions.new(args, dependent.options)
|
||||||
@ -680,7 +680,6 @@ class FormulaInstaller
|
|||||||
if !formula.prefix.directory? || Keg.new(formula.prefix).empty_installation?
|
if !formula.prefix.directory? || Keg.new(formula.prefix).empty_installation?
|
||||||
raise "Empty installation"
|
raise "Empty installation"
|
||||||
end
|
end
|
||||||
|
|
||||||
rescue Exception
|
rescue Exception
|
||||||
ignore_interrupts do
|
ignore_interrupts do
|
||||||
# any exceptions must leave us with nothing installed
|
# any exceptions must leave us with nothing installed
|
||||||
|
|||||||
@ -367,7 +367,7 @@ class Keg
|
|||||||
dep_formula = Formulary.factory(dep["full_name"])
|
dep_formula = Formulary.factory(dep["full_name"])
|
||||||
dep_formula == to_formula
|
dep_formula == to_formula
|
||||||
rescue FormulaUnavailableError
|
rescue FormulaUnavailableError
|
||||||
next "#{tap}/#{name}" == dep["full_name"]
|
next dep["full_name"] == "#{tap}/#{name}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -47,7 +47,7 @@ module Language
|
|||||||
def cabal_install(*args)
|
def cabal_install(*args)
|
||||||
# cabal hardcodes 64 as the maximum number of parallel jobs
|
# cabal hardcodes 64 as the maximum number of parallel jobs
|
||||||
# https://github.com/Homebrew/legacy-homebrew/issues/49509
|
# https://github.com/Homebrew/legacy-homebrew/issues/49509
|
||||||
make_jobs = ENV.make_jobs > 64 ? 64 : ENV.make_jobs
|
make_jobs = (ENV.make_jobs > 64) ? 64 : ENV.make_jobs
|
||||||
|
|
||||||
# cabal-install's dependency-resolution backtracking strategy can easily
|
# cabal-install's dependency-resolution backtracking strategy can easily
|
||||||
# need more than the default 2,000 maximum number of "backjumps," since
|
# need more than the default 2,000 maximum number of "backjumps," since
|
||||||
|
|||||||
@ -90,7 +90,7 @@ module OS
|
|||||||
@locator ||= SDKLocator.new
|
@locator ||= SDKLocator.new
|
||||||
begin
|
begin
|
||||||
sdk = if v.nil?
|
sdk = if v.nil?
|
||||||
Xcode.version.to_i >= 7 ? @locator.latest_sdk : @locator.sdk_for(version)
|
(Xcode.version.to_i >= 7) ? @locator.latest_sdk : @locator.sdk_for(version)
|
||||||
else
|
else
|
||||||
@locator.sdk_for v
|
@locator.sdk_for v
|
||||||
end
|
end
|
||||||
|
|||||||
@ -62,10 +62,10 @@ class LinkageChecker
|
|||||||
declared_deps = formula.deps.reject { |dep| filter_out.call(dep) }.map(&:name)
|
declared_deps = formula.deps.reject { |dep| filter_out.call(dep) }.map(&:name)
|
||||||
declared_requirement_deps = formula.requirements.reject { |req| filter_out.call(req) }.map(&:default_formula).compact
|
declared_requirement_deps = formula.requirements.reject { |req| filter_out.call(req) }.map(&:default_formula).compact
|
||||||
declared_dep_names = (declared_deps + declared_requirement_deps).map { |dep| dep.split("/").last }
|
declared_dep_names = (declared_deps + declared_requirement_deps).map { |dep| dep.split("/").last }
|
||||||
undeclared_deps = @brewed_dylibs.keys.select do |full_name|
|
undeclared_deps = @brewed_dylibs.keys.reject do |full_name|
|
||||||
name = full_name.split("/").last
|
name = full_name.split("/").last
|
||||||
next false if name == formula.name
|
next true if name == formula.name
|
||||||
!declared_dep_names.include?(name)
|
declared_dep_names.include?(name)
|
||||||
end
|
end
|
||||||
undeclared_deps.sort do |a, b|
|
undeclared_deps.sort do |a, b|
|
||||||
if a.include?("/") && !b.include?("/")
|
if a.include?("/") && !b.include?("/")
|
||||||
|
|||||||
@ -96,7 +96,7 @@ module RuboCop
|
|||||||
else
|
else
|
||||||
indentation = " " * (start_column(node2) - line_start_column(node2))
|
indentation = " " * (start_column(node2) - line_start_column(node2))
|
||||||
# No line breaks upto version_scheme, order_idx == 8
|
# No line breaks upto version_scheme, order_idx == 8
|
||||||
line_breaks = order_idx>8 ? "\n\n" : "\n"
|
line_breaks = (order_idx>8) ? "\n\n" : "\n"
|
||||||
corrector.insert_before(node2.source_range, node1.source+line_breaks+indentation)
|
corrector.insert_before(node2.source_range, node1.source+line_breaks+indentation)
|
||||||
end
|
end
|
||||||
corrector.remove(range_with_surrounding_space(node1.source_range, :left))
|
corrector.remove(range_with_surrounding_space(node1.source_range, :left))
|
||||||
|
|||||||
@ -176,7 +176,7 @@ class Sandbox
|
|||||||
|
|
||||||
def add_rule(rule)
|
def add_rule(rule)
|
||||||
s = "("
|
s = "("
|
||||||
s << (rule[:allow] ? "allow": "deny")
|
s << ((rule[:allow]) ? "allow": "deny")
|
||||||
s << " #{rule[:operation]}"
|
s << " #{rule[:operation]}"
|
||||||
s << " (#{rule[:filter]})" if rule[:filter]
|
s << " (#{rule[:filter]})" if rule[:filter]
|
||||||
s << " (with #{rule[:modifier]})" if rule[:modifier]
|
s << " (with #{rule[:modifier]})" if rule[:modifier]
|
||||||
|
|||||||
@ -235,7 +235,7 @@ class Bottle
|
|||||||
end
|
end
|
||||||
|
|
||||||
def suffix
|
def suffix
|
||||||
s = rebuild > 0 ? ".#{rebuild}" : ""
|
s = (rebuild > 0) ? ".#{rebuild}" : ""
|
||||||
".bottle#{s}.tar.gz"
|
".bottle#{s}.tar.gz"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -2,11 +2,11 @@ source "https://rubygems.org"
|
|||||||
|
|
||||||
gem "parallel_tests"
|
gem "parallel_tests"
|
||||||
gem "rspec"
|
gem "rspec"
|
||||||
gem "rubocop"
|
|
||||||
gem "rspec-its", require: false
|
gem "rspec-its", require: false
|
||||||
gem "rspec-wait", require: false
|
gem "rspec-wait", require: false
|
||||||
|
gem "rubocop"
|
||||||
|
|
||||||
group :coverage do
|
group :coverage do
|
||||||
gem "simplecov", require: false
|
|
||||||
gem "codecov", require: false
|
gem "codecov", require: false
|
||||||
|
gem "simplecov", require: false
|
||||||
end
|
end
|
||||||
|
|||||||
@ -36,7 +36,8 @@ GEM
|
|||||||
rspec-support (3.6.0)
|
rspec-support (3.6.0)
|
||||||
rspec-wait (0.0.9)
|
rspec-wait (0.0.9)
|
||||||
rspec (>= 3, < 4)
|
rspec (>= 3, < 4)
|
||||||
rubocop (0.48.1)
|
rubocop (0.49.1)
|
||||||
|
parallel (~> 1.10)
|
||||||
parser (>= 2.3.3.1, < 3.0)
|
parser (>= 2.3.3.1, < 3.0)
|
||||||
powerpack (~> 0.1)
|
powerpack (~> 0.1)
|
||||||
rainbow (>= 1.99.1, < 3.0)
|
rainbow (>= 1.99.1, < 3.0)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
describe "download strategies", :cask do
|
describe "download strategies", :cask do
|
||||||
let(:url) { "http://example.com/cask.dmg" }
|
let(:url) { "http://example.com/cask.dmg" }
|
||||||
let(:url_options) { Hash.new }
|
let(:url_options) { {} }
|
||||||
let(:cask) {
|
let(:cask) {
|
||||||
instance_double(Hbc::Cask, token: "some-cask",
|
instance_double(Hbc::Cask, token: "some-cask",
|
||||||
url: Hbc::URL.new(url, url_options),
|
url: Hbc::URL.new(url, url_options),
|
||||||
|
|||||||
@ -4,11 +4,11 @@ require "utils/tty"
|
|||||||
describe Formatter do
|
describe Formatter do
|
||||||
describe "::columns" do
|
describe "::columns" do
|
||||||
let(:input) {
|
let(:input) {
|
||||||
[
|
%w[
|
||||||
"aa",
|
aa
|
||||||
"bbb",
|
bbb
|
||||||
"ccc",
|
ccc
|
||||||
"dd",
|
dd
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
subject { described_class.columns(input) }
|
subject { described_class.columns(input) }
|
||||||
|
|||||||
@ -683,7 +683,7 @@ describe Formula do
|
|||||||
end
|
end
|
||||||
|
|
||||||
expect(f5.deps.map(&:name)).to eq(["f3", "f4"])
|
expect(f5.deps.map(&:name)).to eq(["f3", "f4"])
|
||||||
expect(f5.recursive_dependencies.map(&:name)).to eq(["f1", "f2", "f3", "f4"])
|
expect(f5.recursive_dependencies.map(&:name)).to eq(%w[f1 f2 f3 f4])
|
||||||
expect(f5.runtime_dependencies.map(&:name)).to eq(["f1", "f4"])
|
expect(f5.runtime_dependencies.map(&:name)).to eq(["f1", "f4"])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -44,9 +44,7 @@ describe Migrator do
|
|||||||
end
|
end
|
||||||
|
|
||||||
after(:each) do
|
after(:each) do
|
||||||
if !old_keg_record.parent.symlink? && old_keg_record.directory?
|
keg.unlink if !old_keg_record.parent.symlink? && old_keg_record.directory?
|
||||||
keg.unlink
|
|
||||||
end
|
|
||||||
|
|
||||||
if new_keg_record.directory?
|
if new_keg_record.directory?
|
||||||
new_keg = Keg.new(new_keg_record)
|
new_keg = Keg.new(new_keg_record)
|
||||||
|
|||||||
@ -104,7 +104,7 @@ describe Pathname do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "preserves permissions" do
|
it "preserves permissions" do
|
||||||
File.open(file, "w", 0100777).close
|
File.open(file, "w", 0100777) {}
|
||||||
file.atomic_write("CONTENT")
|
file.atomic_write("CONTENT")
|
||||||
expect(file.stat.mode).to eq(0100777 & ~File.umask)
|
expect(file.stat.mode).to eq(0100777 & ~File.umask)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -3,7 +3,7 @@ require "extend/string"
|
|||||||
describe String do
|
describe String do
|
||||||
describe "#undent" do
|
describe "#undent" do
|
||||||
it "removes leading whitespace, taking the first line as reference" do
|
it "removes leading whitespace, taking the first line as reference" do
|
||||||
string = <<-EOS.undent
|
string = <<-EOS.unindent
|
||||||
hi
|
hi
|
||||||
........my friend over
|
........my friend over
|
||||||
there
|
there
|
||||||
@ -13,7 +13,7 @@ describe String do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "removes nothing if the text is not indented" do
|
it "removes nothing if the text is not indented" do
|
||||||
string = <<-EOS.undent
|
string = <<-EOS.unindent
|
||||||
hi
|
hi
|
||||||
I'm not indented
|
I'm not indented
|
||||||
EOS
|
EOS
|
||||||
|
|||||||
@ -280,7 +280,7 @@ class Version
|
|||||||
private
|
private
|
||||||
|
|
||||||
def max(a, b)
|
def max(a, b)
|
||||||
a > b ? a : b
|
(a > b) ? a : b
|
||||||
end
|
end
|
||||||
|
|
||||||
def tokenize
|
def tokenize
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user