Class/Module Index [+]

Quicksearch

Ramaze::Bin::Helper

Module containing various helper methods useful for most commands.

@author Yorick Peterse @author TJ Vanderpoel @since 21-07-2011

Public Instance Methods

is_running?(pid) click to toggle source

Checks if the specified PID points to a process that's already running.

@author TJ Vanderpoel @since 21-07-2011 @param [String] pid The path to the PID. @return [TrueClass|FalseClass]

# 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
is_windows?() click to toggle source

Checks if the system the user is using is Windows.

@author TJ Vanderpoel @since 21-07-2011 @return [TrueClass|FalseClass]

# 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
rackup_path() click to toggle source

Tries to extract the path to the Rackup executable.

@author TJ Vanderpoel @since 21-07-2001 @return [String]

# 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 = %{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 %<(\\|/)rack\11>> }
    require "pathname"
    @rackup_path = Pathname.new(rack_lib).parent.join("bin").join(
      "rackup"
    ).expand_path
    
    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

[Validate]

Generated with the Darkfish Rdoc Generator 2.