class Spring::Env
Attributes
log_file[R]
Public Class Methods
new(root = nil)
click to toggle source
# File lib/spring/env.rb, line 17 def initialize(root = nil) @root = root @project_root = root @log_file = File.open(ENV["SPRING_LOG"] || File::NULL, "a") end
Public Instance Methods
app_name()
click to toggle source
# File lib/spring/env.rb, line 64 def app_name root.basename end
application_id()
click to toggle source
# File lib/spring/env.rb, line 41 def application_id Digest::MD5.hexdigest(RUBY_VERSION + project_root.to_s) end
kill(sig)
click to toggle source
# File lib/spring/env.rb, line 102 def kill(sig) pid = self.pid Process.kill(sig, pid) if pid rescue Errno::ESRCH # already dead end
log(message)
click to toggle source
# File lib/spring/env.rb, line 80 def log(message) log_file.puts "[#{Time.now}] [#{Process.pid}] #{message}" log_file.flush end
pid()
click to toggle source
# File lib/spring/env.rb, line 57 def pid pidfile_path.exist? ? pidfile_path.read.to_i : nil rescue Errno::ENOENT # This can happen if the pidfile is removed after we check it # exists end
pidfile_path()
click to toggle source
# File lib/spring/env.rb, line 53 def pidfile_path tmp_path.join("#{application_id}.pid") end
project_root()
click to toggle source
# File lib/spring/env.rb, line 27 def project_root @project_root ||= Spring.project_root_path end
root()
click to toggle source
# File lib/spring/env.rb, line 23 def root @root ||= Spring.application_root_path end
server_running?()
click to toggle source
# File lib/spring/env.rb, line 68 def server_running? pidfile = pidfile_path.open('r+') !pidfile.flock(File::LOCK_EX | File::LOCK_NB) rescue Errno::ENOENT false ensure if pidfile pidfile.flock(File::LOCK_UN) pidfile.close end end
socket_name()
click to toggle source
# File lib/spring/env.rb, line 49 def socket_name socket_path.to_s end
socket_path()
click to toggle source
# File lib/spring/env.rb, line 45 def socket_path tmp_path.join(application_id) end
stop()
click to toggle source
# File lib/spring/env.rb, line 85 def stop if server_running? timeout = Time.now + STOP_TIMEOUT kill 'TERM' sleep 0.1 until !server_running? || Time.now >= timeout if server_running? kill 'KILL' :killed else :stopped end else :not_running end end
tmp_path()
click to toggle source
# File lib/spring/env.rb, line 35 def tmp_path path = Pathname.new(File.join(ENV['XDG_RUNTIME_DIR'] || Dir.tmpdir, "spring")) FileUtils.mkdir_p(path) unless path.exist? path end
version()
click to toggle source
# File lib/spring/env.rb, line 31 def version Spring::VERSION end