Merge pull request #2679 from MikeMcQuaid/parallel-rubocop

Use parallel RuboCop
This commit is contained in:
Mike McQuaid 2017-05-29 19:22:46 +01:00 committed by GitHub
commit 744e7dd190
53 changed files with 194 additions and 187 deletions

View File

@ -2,9 +2,9 @@ language: ruby
cache:
directories:
- $HOME/.gem/ruby
- $HOME/Library/Caches/Homebrew/style
- $HOME/Library/Caches/Homebrew/tests
- Library/Homebrew/vendor/bundle
# For parallel_rspec
- Library/Homebrew/tmp
matrix:
include:

View File

@ -23,23 +23,67 @@ FormulaAuditStrict/ComponentsRedundancy:
FormulaAudit/Homepage:
Enabled: true
Metrics/AbcSize:
# `system` is a special case and aligns on second argument
Layout/AlignParameters:
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:
Enabled: false
Max: 1250
Metrics/ClassLength:
Enabled: false
Max: 1500
Metrics/CyclomaticComplexity:
Enabled: false
Max: 75
Metrics/LineLength:
Enabled: false
Max: 400
Metrics/MethodLength:
Enabled: false
Max: 250
Metrics/ModuleLength:
CountComments: false
@ -47,36 +91,19 @@ Metrics/ModuleLength:
- '**/bin/**/*'
- '**/cmd/**/*'
- '**/lib/**/*'
- '**/spec/**/*'
Metrics/PerceivedComplexity:
Enabled: false
Max: 80
# favor parens-less DSL-style arguments
Lint/AmbiguousOperator:
Enabled: false
Lint/AmbiguousRegexpLiteral:
Enabled: false
Lint/AssignmentInCondition:
Enabled: false
Lint/EndAlignment:
EnforcedStyleAlignWith: variable
Lint/ParenthesesAsGroupedExpression:
# makes code less readable for minor performance increases
Performance/Caller:
Enabled: false
Style/Alias:
EnforcedStyle: prefer_alias
Style/AlignHash:
Enabled: false
# `system` is a special case and aligns on second argument
Style/AlignParameters:
Enabled: false
Style/AutoResourceCleanup:
Enabled: true
Style/BarePercentLiterals:
EnforcedStyle: percent_q
@ -84,9 +111,6 @@ Style/BarePercentLiterals:
Style/BlockDelimiters:
EnforcedStyle: line_count_based
Style/CaseIndentation:
EnforcedStyle: end
Style/ClassAndModuleChildren:
EnforcedStyle: nested
@ -99,16 +123,22 @@ Style/CommandLiteral:
Style/ConditionalAssignment:
Enabled: false
# most of our APIs are internal so don't require docs
Style/Documentation:
Enabled: false
Style/EmptyLineBetweenDefs:
AllowAdjacentOneLineDefs: true
Style/Encoding:
Enabled: true
# dashes in filenames are typical
Style/FileName:
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:
Enabled: false
@ -121,13 +151,6 @@ Style/HashSyntax:
- '**/lib/**/*'
- '**/spec/**/*'
# disabled until it respects line length
Style/IfUnlessModifier:
Enabled: false
Style/IndentArray:
EnforcedStyle: special_inside_parentheses
# only for numbers >= 1_000_000
Style/NumericLiterals:
MinDigits: 7
@ -160,13 +183,6 @@ Style/RaiseArgs:
Style/RegexpLiteral:
EnforcedStyle: slashes
# conflicts with DSL-style path concatenation with `/`
Style/SpaceAroundOperators:
Enabled: false
Style/SingleLineBlockParams:
Enabled: false
# not a problem for typical shell users
Style/SpecialGlobalVars:
Enabled: false
@ -179,17 +195,22 @@ Style/StringLiterals:
Style/StringLiteralsInInterpolation:
EnforcedStyle: double_quotes
Style/SymbolArray:
EnforcedStyle: brackets
Style/TernaryParentheses:
Enabled: false
EnforcedStyle: require_parentheses_when_complex
# makes diffs nicer
Style/TrailingCommaInLiteral:
EnforcedStyleForMultiline: comma
Style/TrailingCommaInArguments:
EnforcedStyleForMultiline: comma
# we have too many variables like sha256 where this harms readability
Style/VariableNumber:
Enabled: false
Style/WordArray:
Enabled: false
MinSize: 4

View File

@ -9,9 +9,8 @@ AllCops:
- '**/Casks/**/*'
- '**/vendor/**/*'
Style/BlockDelimiters:
Layout/MultilineMethodCallIndentation:
Exclude:
- '**/cask/spec/**/*'
- '**/*_spec.rb'
# so many of these in formulae but none in here
@ -27,16 +26,13 @@ Lint/NestedMethodDefinition:
Lint/ParenthesesAsGroupedExpression:
Enabled: true
Metrics/ModuleLength:
CountComments: false
Exclude:
- 'cask/lib/hbc/locations.rb'
- 'cask/lib/hbc/macos.rb'
- 'cask/lib/hbc/utils.rb'
Metrics/ParameterLists:
CountKeywordArgs: false
Style/BlockDelimiters:
Exclude:
- '**/*_spec.rb'
# so many of these in formulae but none in here
Style/GuardClause:
Enabled: true

View File

@ -116,7 +116,6 @@ begin
odie "Unknown command: #{cmd}"
end
end
rescue UsageError => e
require "cmd/help"
Homebrew.help cmd, usage_error: e.message

View File

@ -10,7 +10,7 @@ module Hbc
end
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
def self.artifact_dsl_key
@ -43,7 +43,7 @@ module Hbc
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.}
end
arguments.reject! { |k| !permitted_keys.include?(k) }
arguments.select! { |k| permitted_keys.include?(k) }
# key warnings
override_keys = override_arguments.keys

View File

@ -197,9 +197,7 @@ module Hbc
paths.each do |path|
resolved_path = Pathname.new(path)
if path.start_with?("~")
resolved_path = resolved_path.expand_path
end
resolved_path = resolved_path.expand_path if path.start_with?("~")
if resolved_path.relative? || resolved_path.split.any? { |part| part.to_s == ".." }
opoo "Skipping #{Formatter.identifier(action)} for relative path '#{path}'."

View File

@ -66,7 +66,7 @@ module Hbc
return [] if current == version
# collect all installed versions that are different than tap version and return them
installed.select { |v| v != version }
installed.reject { |v| v == version }
end
def to_s

View File

@ -54,7 +54,7 @@ module Hbc
class FromURILoader < FromPathLoader
def self.can_load?(ref)
!(ref.to_s !~ ::URI.regexp)
ref.to_s =~ ::URI.regexp
end
def initialize(url)
@ -80,7 +80,7 @@ module Hbc
class FromTapLoader < FromPathLoader
def self.can_load?(ref)
!(ref.to_s !~ HOMEBREW_TAP_CASK_REGEX)
ref.to_s =~ HOMEBREW_TAP_CASK_REGEX
end
def initialize(tapped_name)

View File

@ -140,9 +140,7 @@ module Hbc
command_name, *args = *@args
command = help? ? "help" : self.class.lookup_command(command_name)
unless ENV["MACOS_VERSION"].nil?
MacOS.full_version = ENV["MACOS_VERSION"]
end
MacOS.full_version = ENV["MACOS_VERSION"] unless ENV["MACOS_VERSION"].nil?
Hbc.default_tap.install unless Hbc.default_tap.installed?
Hbc.init if self.class.should_init?(command)

View File

@ -15,7 +15,7 @@ module Hbc
end
def self.abstract?
!(name.split("::").last !~ /^Abstract[^a-z]/)
name.split("::").last =~ /^Abstract[^a-z]/
end
def self.visible

View File

@ -17,17 +17,17 @@ module Hbc
ohai "Contents of $LOAD_PATH", self.class.render_load_path($LOAD_PATH)
ohai "Environment Variables"
environment_variables = [
"RUBYLIB",
"RUBYOPT",
"RUBYPATH",
"RBENV_VERSION",
"CHRUBY_VERSION",
"GEM_HOME",
"GEM_PATH",
"BUNDLE_PATH",
"PATH",
"SHELL",
environment_variables = %w[
RUBYLIB
RUBYOPT
RUBYPATH
RBENV_VERSION
CHRUBY_VERSION
GEM_HOME
GEM_PATH
BUNDLE_PATH
PATH
SHELL
]
(self.class.locale_variables + environment_variables).sort.each(&self.class.method(:render_env_var))

View File

@ -49,7 +49,7 @@ module Hbc
end
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
end
@ -69,7 +69,7 @@ module Hbc
DSL::ORDINARY_ARTIFACT_TYPES.each do |type|
next if cask.artifacts[type].empty?
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})"
end
end

View File

@ -43,7 +43,7 @@ module Hbc
if checkpoint.nil?
onoe "Could not retrieve `appcast` checkpoint for cask '#{cask}': #{result[:command_result].stderr}"
else
puts cask_tokens.count > 1 ? "#{checkpoint} #{cask}": checkpoint
puts((cask_tokens.count > 1) ? "#{checkpoint} #{cask}": checkpoint)
count += 1
end
end

View File

@ -12,7 +12,7 @@ module Hbc
def run
retval = args.any? ? list : list_installed
# 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
elsif retval.nil?
raise CaskError, "nothing to list"

View File

@ -11,7 +11,8 @@ module Hbc
def run
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?
true
end

View File

@ -86,7 +86,7 @@ module Hbc
Dir.chdir(mount) do
Dir.glob("**/*", File::FNM_DOTMATCH).map do |path|
next if skip_path?(Pathname(path))
path == "." ? path : path.prepend("./")
(path == ".") ? path : path.prepend("./")
end.compact.join("\n").concat("\n")
end
end

View File

@ -212,7 +212,7 @@ module Hbc
class SubversionDownloadStrategy < HbVCSDownloadStrategy
def cache_tag
# TODO: pass versions as symbols, support :head here
version == "head" ? "svn-HEAD" : "svn"
(version == "head") ? "svn-HEAD" : "svn"
end
def repo_valid?

View File

@ -119,9 +119,7 @@ module Hbc
def language_eval
return @language if instance_variable_defined?(:@language)
if @language_blocks.nil? || @language_blocks.empty?
return @language = nil
end
return @language = nil if @language_blocks.nil? || @language_blocks.empty?
MacOS.languages.map(&Locale.method(:parse)).each do |locale|
key = @language_blocks.keys.detect do |strings|

View File

@ -113,7 +113,7 @@ module Hbc
end
def to_s
"Cask '#{token}' definition is invalid" + (!submsg.empty? ? ": #{submsg}" : "")
"Cask '#{token}' definition is invalid#{": #{submsg}" unless submsg.empty?}"
end
end

View File

@ -94,7 +94,7 @@ module Hbc
loop do
readable_sources = IO.select(sources)[0]
readable_sources.delete_if(&:eof?).first(1).each do |source|
type = (source == sources[0] ? :stdout : :stderr)
type = ((source == sources[0]) ? :stdout : :stderr)
begin
yield(type, source.readline_nonblock || "")
rescue IO::WaitReadable, EOFError

View File

@ -38,6 +38,7 @@
#: `--include-optional`, and `--skip-recommended` as documented above.
# encoding: UTF-8
require "formula"
require "ostruct"
@ -112,10 +113,10 @@ module Homebrew
end
else
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
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
@ -160,7 +161,7 @@ module Homebrew
else
"├──"
end
prefix_ext = i == max ? " " : ""
prefix_ext = (i == max) ? " " : ""
puts prefix + "#{chr} #{dep_display_name(dep)}"
recursive_deps_tree(Formulary.factory(dep.name), prefix + prefix_ext)
end

View File

@ -1,4 +1,4 @@
HOMEBREW_HELP = <<-EOS.freeze
HOMEBREW_HELP = <<-EOS.unindent.freeze
Example usage:
brew search [TEXT|/REGEX/]
brew (info|home|options) [FORMULA...]

View File

@ -72,9 +72,7 @@ module Homebrew
puts "#{n} symlinks created"
end
if keg_only && !ARGV.homebrew_developer?
puts_keg_only_path_message(keg)
end
puts_keg_only_path_message(keg) if keg_only && !ARGV.homebrew_developer?
end
end
end

View File

@ -73,7 +73,11 @@ module Homebrew
args = %w[
--force-exclusion
]
args << "--auto-correct" if fix
if fix
args << "--auto-correct"
else
args << "--parallel"
end
if options[:except_cops]
options[:except_cops].map! { |cop| RuboCop::Cop::Cop.registry.qualified_cop_name(cop.to_s, "") }
@ -101,14 +105,16 @@ module Homebrew
args += files
end
cache_env = { "XDG_CACHE_HOME" => "#{HOMEBREW_CACHE}/style" }
case output_type
when :print
args << "--display-cop-names" if ARGV.include? "--display-cop-names"
args << "--format" << "simple" if files
system({ "XDG_CACHE_HOME" => HOMEBREW_CACHE }, "rubocop", *args)
system(cache_env, "rubocop", *args)
!$?.success?
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
# execution errors.
# exitstatus can also be nil if RuboCop process crashes, e.g. due to

View File

@ -98,10 +98,10 @@ module Homebrew
reqs = reqs_by_formula.map(&:last)
else
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
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
next true if deps.any? do |dep|

View File

@ -19,5 +19,5 @@ end
def plural(n, s = "s")
odeprecated "#plural", "Formatter.pluralize"
n == 1 ? "" : s
(n == 1) ? "" : s
end

View File

@ -1,3 +1,3 @@
# RuboCop version used for `brew style` and `brew cask style`
HOMEBREW_RUBOCOP_VERSION = "0.47.1".freeze
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.12.0".freeze # has to be updated when RuboCop version changes
HOMEBREW_RUBOCOP_VERSION = "0.49.1".freeze
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.13.0".freeze # has to be updated when RuboCop version changes

View File

@ -16,7 +16,7 @@ class CxxStdlib
if type && ![:libstdcxx, :libcxx].include?(type)
raise ArgumentError, "Invalid C++ stdlib type: #{type}"
end
klass = compiler.to_s =~ GNU_GCC_REGEXP ? GnuStdlib : AppleStdlib
klass = (compiler.to_s =~ GNU_GCC_REGEXP) ? GnuStdlib : AppleStdlib
klass.new(type, compiler)
end

View File

@ -121,7 +121,7 @@ class Descriptions
blank = Formatter.warning("[no description]")
@descriptions.keys.sort.each do |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
puts "#{Tty.bold}#{printed_name}:#{Tty.reset} #{description}"
end

View File

@ -591,9 +591,7 @@ class FormulaAuditor
def audit_homepage
homepage = formula.homepage
if homepage.nil? || homepage.empty?
return
end
return if homepage.nil? || homepage.empty?
return unless @online
@ -988,9 +986,7 @@ class FormulaAuditor
problem ":apr is deprecated. Usage should be \"apr-util\""
end
if line =~ /depends_on :tex/
problem ":tex is deprecated"
end
problem ":tex is deprecated" if line =~ /depends_on :tex/
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}`"

View File

@ -314,8 +314,8 @@ module Homebrew
old_spec = f.bottle_specification
if ARGV.include?("--keep-old") && !old_spec.checksums.empty?
mismatches = [:root_url, :prefix, :cellar, :rebuild].select do |key|
old_spec.send(key) != bottle.send(key)
mismatches = [:root_url, :prefix, :cellar, :rebuild].reject do |key|
old_spec.send(key) == bottle.send(key)
end
mismatches.delete(:cellar) if old_spec.cellar == :any && bottle.cellar == :any_skip_relocation
unless mismatches.empty?
@ -382,9 +382,7 @@ module Homebrew
bottle = BottleSpecification.new
bottle.root_url bottle_hash["bottle"]["root_url"]
cellar = bottle_hash["bottle"]["cellar"]
if cellar == "any" || cellar == "any_skip_relocation"
cellar = cellar.to_sym
end
cellar = cellar.to_sym if ["any", "any_skip_relocation"].include?(cellar)
bottle.cellar cellar
bottle.prefix bottle_hash["bottle"]["prefix"]
bottle.rebuild bottle_hash["bottle"]["rebuild"]

View File

@ -21,7 +21,7 @@ module Homebrew
# If no brews are listed, open the project root in an editor.
if ARGV.named.empty?
editor = File.basename which_editor
if editor == "mate" || editor == "subl"
if ["mate", "subl"].include?(editor)
# If the user is using TextMate or Sublime Text,
# give a nice project view instead.
exec_editor HOMEBREW_REPOSITORY+"bin/brew",

View File

@ -60,9 +60,7 @@ module Homebrew
end
Homebrew.install_gem_setup_path! "bundler"
unless quiet_system("bundle", "check")
system "bundle", "install"
end
system "bundle", "install" unless quiet_system("bundle", "check")
parallel = true
@ -91,12 +89,12 @@ module Homebrew
end
args = ["-I", HOMEBREW_LIBRARY_PATH/"test"]
args += %w[
args += %W[
--color
--require spec_helper
--format progress
--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"

View File

@ -2,6 +2,7 @@ class String
def undent
gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "")
end
alias unindent undent
# eg:
# if foo then <<-EOS.undent_________________________________________________________72

View File

@ -61,9 +61,9 @@ module FormulaCellarChecks
valid_extensions = %w[.a .dylib .framework .jnilib .la .o .so
.jar .prl .pm .sh]
non_libraries = formula.lib.children.select do |g|
non_libraries = formula.lib.children.reject do |g|
next if g.directory?
!valid_extensions.include? g.extname
valid_extensions.include? g.extname
end
return if non_libraries.empty?

View File

@ -472,7 +472,7 @@ class FormulaInstaller
def effective_build_options_for(dependent, inherited_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 &= dependent.options
BuildOptions.new(args, dependent.options)
@ -680,7 +680,6 @@ class FormulaInstaller
if !formula.prefix.directory? || Keg.new(formula.prefix).empty_installation?
raise "Empty installation"
end
rescue Exception
ignore_interrupts do
# any exceptions must leave us with nothing installed

View File

@ -367,7 +367,7 @@ class Keg
dep_formula = Formulary.factory(dep["full_name"])
dep_formula == to_formula
rescue FormulaUnavailableError
next "#{tap}/#{name}" == dep["full_name"]
next dep["full_name"] == "#{tap}/#{name}"
end
end
end

View File

@ -47,7 +47,7 @@ module Language
def cabal_install(*args)
# cabal hardcodes 64 as the maximum number of parallel jobs
# 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
# need more than the default 2,000 maximum number of "backjumps," since

View File

@ -90,7 +90,7 @@ module OS
@locator ||= SDKLocator.new
begin
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
@locator.sdk_for v
end

View File

@ -62,10 +62,10 @@ class LinkageChecker
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_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
next false if name == formula.name
!declared_dep_names.include?(name)
next true if name == formula.name
declared_dep_names.include?(name)
end
undeclared_deps.sort do |a, b|
if a.include?("/") && !b.include?("/")

View File

@ -96,7 +96,7 @@ module RuboCop
else
indentation = " " * (start_column(node2) - line_start_column(node2))
# 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)
end
corrector.remove(range_with_surrounding_space(node1.source_range, :left))

View File

@ -176,7 +176,7 @@ class Sandbox
def add_rule(rule)
s = "("
s << (rule[:allow] ? "allow": "deny")
s << ((rule[:allow]) ? "allow": "deny")
s << " #{rule[:operation]}"
s << " (#{rule[:filter]})" if rule[:filter]
s << " (with #{rule[:modifier]})" if rule[:modifier]

View File

@ -235,7 +235,7 @@ class Bottle
end
def suffix
s = rebuild > 0 ? ".#{rebuild}" : ""
s = (rebuild > 0) ? ".#{rebuild}" : ""
".bottle#{s}.tar.gz"
end
end

View File

@ -2,11 +2,11 @@ source "https://rubygems.org"
gem "parallel_tests"
gem "rspec"
gem "rubocop"
gem "rspec-its", require: false
gem "rspec-wait", require: false
gem "rubocop"
group :coverage do
gem "simplecov", require: false
gem "codecov", require: false
gem "simplecov", require: false
end

View File

@ -36,7 +36,8 @@ GEM
rspec-support (3.6.0)
rspec-wait (0.0.9)
rspec (>= 3, < 4)
rubocop (0.48.1)
rubocop (0.49.1)
parallel (~> 1.10)
parser (>= 2.3.3.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)

View File

@ -1,6 +1,6 @@
describe "download strategies", :cask do
let(:url) { "http://example.com/cask.dmg" }
let(:url_options) { Hash.new }
let(:url_options) { {} }
let(:cask) {
instance_double(Hbc::Cask, token: "some-cask",
url: Hbc::URL.new(url, url_options),

View File

@ -4,11 +4,11 @@ require "utils/tty"
describe Formatter do
describe "::columns" do
let(:input) {
[
"aa",
"bbb",
"ccc",
"dd",
%w[
aa
bbb
ccc
dd
]
}
subject { described_class.columns(input) }

View File

@ -683,7 +683,7 @@ describe Formula do
end
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"])
end

View File

@ -44,9 +44,7 @@ describe Migrator do
end
after(:each) do
if !old_keg_record.parent.symlink? && old_keg_record.directory?
keg.unlink
end
keg.unlink if !old_keg_record.parent.symlink? && old_keg_record.directory?
if new_keg_record.directory?
new_keg = Keg.new(new_keg_record)

View File

@ -104,7 +104,7 @@ describe Pathname do
end
it "preserves permissions" do
File.open(file, "w", 0100777).close
File.open(file, "w", 0100777) {}
file.atomic_write("CONTENT")
expect(file.stat.mode).to eq(0100777 & ~File.umask)
end

View File

@ -3,7 +3,7 @@ require "extend/string"
describe String do
describe "#undent" do
it "removes leading whitespace, taking the first line as reference" do
string = <<-EOS.undent
string = <<-EOS.unindent
hi
........my friend over
there
@ -13,7 +13,7 @@ describe String do
end
it "removes nothing if the text is not indented" do
string = <<-EOS.undent
string = <<-EOS.unindent
hi
I'm not indented
EOS

View File

@ -280,7 +280,7 @@ class Version
private
def max(a, b)
a > b ? a : b
(a > b) ? a : b
end
def tokenize