Module: ProcIndex

Extended by:
ProcIndex
Included in:
ProcIndex
Defined in:
lib/proc_index.rb,
lib/proc_index/util.rb,
lib/proc_index/version.rb,
lib/proc_index/container.rb

Defined Under Namespace

Classes: Container, Error, NoDataError

Constant Summary collapse

Fields =
@fields
ProcTableStruct =
VERSION =
"0.1.3"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.kill_by_pid(pid) ⇒ Object

self.kill_by_pid



52
53
54
# File 'lib/proc_index.rb', line 52

def self.kill_by_pid(pid)
  Process.kill 9, pid.to_i
end

.kill_by_results(results) ⇒ Object

self.kill_by_results



45
46
47
# File 'lib/proc_index.rb', line 45

def self.kill_by_results(results)
  results.collect { |node| Process.kill 9, node.pid.to_i }
end

.ps(pid = nil) ⇒ Object

self.ps

Raises:

  • (TypeError)


59
60
61
62
63
64
65
66
# File 'lib/proc_index.rb', line 59

def self.ps(pid=nil)
  array  = block_given? ? nil : []
  struct = nil

  raise TypeError unless pid.is_a?(Fixnum) if pid

  pid.nil? ? get_process_list : get_process_list(pid: pid)
end

.search(args) ⇒ Object

self.search

-> (pid: 10238492, command: 'spring isofun rails')
-> (pid: 382973, user: 'alexmanelis')
-> ('spring rails server')

Raises:

  • (ArgumentError)


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
# File 'lib/proc_index.rb', line 74

def self.search(args)
  raise ArgumentError.new("Invalid arguments passed: #{args.inspect}") if args.nil?

  process_list = get_process_list
  process_body = process_list.body

  matcher_instances = []
  case args.class.to_s
    when 'Hash'
      args.map do |k, v|
        matcher_instances << {instance: FuzzyMatch.new(process_body, read: k), query: v}
      end
    when 'String'
      # matcher_instances << {instance: FuzzyMatch.new(process_body, read: :command),
      #   query: args.strip.downcase}
    else
      raise ArgumentError.new("Invalid search args: #{args.inspect} -> #{args.class.inspect}")
  end

  if matcher_instances.empty?
    results = process_body.select { |node| node.command.include?(args.downcase.strip) }
  else
    results = matcher_instances.inject([]) do |result, instance|
      result << instance[:instance].find(instance[:query])
    end
  end

  results
end

Instance Method Details

#could_be_user?(attr) ⇒ Boolean

Returns:

  • (Boolean)


4
5
# File 'lib/proc_index/util.rb', line 4

def could_be_user?(attr)
end