class RuboCop::Daemon::Cache
Public Class Methods
acquire_lock() { |flock_result != false| ... }
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 60 def acquire_lock lock_file = File.open(lock_path, File::CREAT) # flock returns 0 if successful, and false if not. flock_result = lock_file.flock(File::LOCK_EX | File::LOCK_NB) yield flock_result != false ensure lock_file.flock(File::LOCK_UN) lock_file.close end
dir()
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 27 def dir cache_path = File.expand_path('~/.cache/rubocop-daemon') Pathname.new(File.join(cache_path, project_dir_cache_key)).tap do |d| d.mkpath unless d.exist? end end
lock_path()
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 46 def lock_path dir.join('lock') end
pid_path()
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 42 def pid_path dir.join('pid') end
pid_running?()
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 54 def pid_running? Process.kill(0, pid_path.read.to_i) == 1 rescue Errno::ESRCH false end
port_path()
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 34 def port_path dir.join('port') end
project_dir()
click to toggle source
Searches for Gemfile or gems.rb in the current dir or any parent dirs
# File lib/rubocop/daemon/cache.rb, line 10 def project_dir current_dir = Dir.pwd while current_dir != '/' return current_dir if %w[Gemfile gems.rb].any? do |gemfile| File.exist?(File.join(current_dir, gemfile)) end current_dir = File.expand_path('..', current_dir) end # If we can't find a Gemfile, just use the current directory Dir.pwd end
project_dir_cache_key()
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 23 def project_dir_cache_key @project_dir_cache_key ||= project_dir[1..-1].tr('/', '+') end
status_path()
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 50 def status_path dir.join('status') end
token_path()
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 38 def token_path dir.join('token') end
write_pid_file() { || ... }
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 75 def write_pid_file pid_path.write(Process.pid) yield ensure dir.rmtree end
write_port_and_token_files(port:, token:)
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 70 def write_port_and_token_files(port:, token:) port_path.write(port) token_path.write(token) end
write_status_file(status)
click to toggle source
# File lib/rubocop/daemon/cache.rb, line 82 def write_status_file(status) status_path.write(status) end