Cache current working directory to speed up Rubocop

This saves thousands of getcwd() system calls and improves the
performance of running Rubocop, which is also used by HAML linting.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/61383
This commit is contained in:
Stan Hu 2019-05-03 05:41:47 -07:00
parent 9f8123d935
commit a8cbec49a0
2 changed files with 5 additions and 3 deletions

View file

@ -5,7 +5,7 @@ module RuboCop
def in_qa_file?(node)
path = node.location.expression.source_buffer.name
path.start_with?(File.join(Dir.pwd, 'qa'))
path.start_with?(File.join(RuboCop::PathUtil.pwd, 'qa'))
end
end
end

View file

@ -6,14 +6,16 @@ module RuboCop
# Returns true if the given node originated from the spec directory.
def in_spec?(node)
path = node.location.expression.source_buffer.name
pwd = RuboCop::PathUtil.pwd
!SPEC_HELPERS.include?(File.basename(path)) &&
path.start_with?(File.join(Dir.pwd, 'spec'), File.join(Dir.pwd, 'ee', 'spec'))
path.start_with?(File.join(pwd, 'spec'), File.join(pwd, 'ee', 'spec'))
end
def migration_directories
@migration_directories ||= MIGRATION_SPEC_DIRECTORIES.map do |dir|
[File.join(Dir.pwd, dir), File.join(Dir.pwd, 'ee', dir)]
pwd = RuboCop::PathUtil.pwd
[File.join(pwd, dir), File.join(pwd, 'ee', dir)]
end.flatten
end