Module: Ramaze::Bin::Helper
Overview
Module containing various helper methods useful for most commands.
Instance Method Summary (collapse)
-
- (TrueClass|FalseClass) is_running?(pid)
Checks if the specified PID points to a process that’s already running.
-
- (TrueClass|FalseClass) is_windows?
Checks if the system the user is using is Windows.
-
- (String) rackup_path
Tries to extract the path to the Rackup executable.
Instance Method Details
- (TrueClass|FalseClass) is_running?(pid)
Checks if the specified PID points to a process that’s already running.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ramaze/bin/helper.rb', line 20 def is_running?(pid) return false if !File.exist?(pid) pid = File.read(pid).to_i if is_windows? wmi = WIN32OLE.connect("winmgmts://") processes, ours = wmi.ExecQuery( "select * from win32_process where ProcessId = #{pid}" ), [] processes.each { |process| ours << process.Name } return ours.first.nil? else begin prio = Process.getpriority(Process::PRIO_PROCESS, pid) return true rescue Errno::ESRCH return false end end end |
- (TrueClass|FalseClass) is_windows?
Checks if the system the user is using is Windows.
51 52 53 54 55 56 57 |
# File 'lib/ramaze/bin/helper.rb', line 51 def is_windows? return @is_win if @is_win begin; require "win32ole"; rescue LoadError; end @is_win ||= Object.const_defined?("WIN32OLE") end |
- (String) rackup_path
Tries to extract the path to the Rackup executable.
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/ramaze/bin/helper.rb', line 66 def rackup_path return @rackup_path if @rackup_path # Check with 'which' on platforms which support it unless is_windows? @rackup_path = %x{which rackup}.to_s.chomp if @rackup_path.size > 0 and File.file?(@rackup_path) return @rackup_path end end # check for rackup in RUBYLIB libs = ENV["RUBYLIB"].to_s.split(is_windows? ? ";" : ":") if rack_lib = libs.detect { |r| r.match %r<(\\|/)rack\1> } require "pathname" @rackup_path = Pathname.new(rack_lib).parent.join("bin").join( "rackup" ). return @rackup_path if File.file?(@rackup_path) end begin require "rubygems" require "rack" require "pathname" @rackup_path = Pathname.new(Gem.bindir).join("rackup").to_s return @rackup_path if File.file?(@rackup_path) rescue LoadError nil end @rackup_path = nil abort "Cannot find the path to the Rackup executable" end |