Sha256: a6b5dd0d6d598ecfd044eaa887d6911a2433121d84674db491268f338c1ad3b9

Contents?: true

Size: 699 Bytes

Versions: 2

Compression:

Stored size: 699 Bytes

Contents

module RPS
  class ProcessEntry
    def self.all
      Dir['/proc/*'].map { |dir| new(dir) if File.basename(dir) =~ /^\d+$/ }.compact
    end

    def initialize(dir)
      @dir = dir
    end

    def readable?
      File.readable? exe_path
    end

    def ruby?
      exe.include? "ruby" # is this good enough?
    end

    def exe
      @exe ||= File.readlink(exe_path)
    end

    def pid
      @pid ||= Integer(File.basename(@dir))
    end

    def command_line
      @command_line ||= File.read(cmdline_path).split("\000")
    end

    private

    def exe_path
      File.join(@dir, "exe")
    end

    def cmdline_path
      File.join(@dir, "cmdline")
    end
  end # ProcessEntry
end # RPS

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rps-0.0.2 lib/rps/process_entry.rb
rps-0.0.1 lib/rps/process_entry.rb