sys-proctable 0.8.1-x86-mswin32-60 → 0.8.2-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,22 @@
1
+ == 0.9.0 - 14-Oct-2009
2
+ * Changed the license to Artistic 2.0.
3
+ * Fixed a bug in the OS X code where a segfault would occur when an attempt
4
+ was made to gather resource usage information on zombie processes. From
5
+ now on that information is always set to nil for zombie processes. Thanks
6
+ go to Tom Lianza for the spot and Philip Kromer for investigating the
7
+ root cause of the failure.
8
+ * Removed the FreeBSD code that read out of /proc. It was a pain from a
9
+ maintenance point of view, and most FreeBSD installs do not mount /proc
10
+ by default. The FreeBSD platform now uses the same code that the other
11
+ BSD platforms use.
12
+ * Fixed a bug in the BSD code where the ProcTable::Error class had the
13
+ wrong parent class.
14
+ * Some major gemspec updates, including an updated license. The platform
15
+ handling logic is now in the Rakefile in the 'gem' task.
16
+ * Updated the README file to include an additional acknowledgement, a
17
+ license change and some minor formatting changes.
18
+ * The test-unit library was changed from a runtime to a development dependency.
19
+
1
20
  == 0.8.1 - 6-Apr-2009
2
21
  * The Linux and Solaris libraries now handle the possibility of a process
3
22
  terminating in the middle of a read more gracefully. If that happens, they
data/MANIFEST CHANGED
@@ -1,38 +1,30 @@
1
- CHANGES
2
- INSTALL
3
- MANIFEST
4
- Rakefile
5
- sys-proctable.gemspec
6
-
7
- doc/freebsd.txt
8
- doc/hpux.txt
9
- doc/linux.txt
10
- doc/solaris.txt
11
- doc/top.txt
12
- doc/windows.txt
13
-
14
- example/example_ps.rb
15
-
16
- ext/extconf.rb
17
- ext/bsd/bsd.c
18
- ext/darwin/darwin.c
19
- ext/freebsd/freebsd.c
20
- ext/freebsd/freebsd.h
21
- ext/hpux/hpux.c
22
- ext/hpux/hpux.h
23
- ext/version.h
24
-
25
- lib/sys/top.rb
26
- lib/sys/linux.rb
27
- lib/sys/sunos.rb
28
- lib/sys/windows.rb
29
-
30
- test/test_sys_proctable_all.rb
31
- test/test_sys_proctable_darwin.rb
32
- test/test_sys_proctable_freebsd.rb
33
- test/test_sys_proctable_hpux.rb
34
- test/test_sys_proctable_kvm.rb
35
- test/test_sys_proctable_linux.rb
36
- test/test_sys_proctable_sunos.rb
37
- test/test_sys_proctable_windows.rb
38
- test/test_sys_top.rb
1
+ * CHANGES
2
+ * MANIFEST
3
+ * Rakefile
4
+ * README
5
+ * sys-proctable.gemspec
6
+ * doc/bsd.txt
7
+ * doc/hpux.txt
8
+ * doc/linux.txt
9
+ * doc/solaris.txt
10
+ * doc/top.txt
11
+ * doc/windows.txt
12
+ * example/example_ps.rb
13
+ * ext/bsd/extconf.rb
14
+ * ext/bsd/sys/proctable.c
15
+ * ext/darwin/extconf.rb
16
+ * ext/darwin/sys/proctable.c
17
+ * ext/hpux/extconf.rb
18
+ * ext/hpux/sys/proctable.c
19
+ * lib/sys/top.rb
20
+ * lib/linux/sys/proctable.rb
21
+ * lib/sunos/sys/proctable.rb
22
+ * lib/windows/sys/proctable.rb
23
+ * test/test_sys_proctable_all.rb
24
+ * test/test_sys_proctable_darwin.rb
25
+ * test/test_sys_proctable_hpux.rb
26
+ * test/test_sys_proctable_bsd.rb
27
+ * test/test_sys_proctable_linux.rb
28
+ * test/test_sys_proctable_sunos.rb
29
+ * test/test_sys_proctable_windows.rb
30
+ * test/test_sys_top.rb
data/README CHANGED
@@ -1,21 +1,30 @@
1
- = Description
1
+ == Description
2
2
  A Ruby interface for gathering process information.
3
3
 
4
- = Prerequisites
4
+ == Prerequisites
5
5
  * Ruby 1.8.2 or later
6
- * Test::Unit 2.x
6
+ * Test::Unit 2.x (development only)
7
7
 
8
- = Supported Platforms
8
+ == Supported Platforms
9
9
  * Windows NT family (NT, 2000, XP, etc)
10
- * Linux
11
- * FreeBSD
12
- * Solaris 2.8+
13
- * HP-UX
14
- * OS X
10
+ * Linux 2.6+
11
+ * BSD (various flavors)
12
+ * Solaris 8+
13
+ * HP-UX 10+
14
+ * OS X 10.4+
15
15
 
16
- = Installation
17
- * rake test (optional)
18
- * rake install
16
+ == Installation
17
+ === Rubygems
18
+ gem install sys-proctable
19
+
20
+ You may need to specify a platform in some cases. For example:
21
+
22
+ gem install sys-proctable --platform mswin32 # Windows
23
+ gem install sys-proctable --platform sunos # Solaris
24
+ gem install sys-proctalbe --platform linux # Linux
25
+
26
+ === Standard
27
+ rake install
19
28
 
20
29
  = Synopsis
21
30
  require 'sys/proctable'
@@ -43,24 +52,14 @@
43
52
  ...
44
53
  end
45
54
 
46
- = Notes
55
+ == Notes
47
56
  Windows users may pass a host name as a second argument to get process
48
57
  information from a different host. This relies on the WMI service running.
49
58
 
50
- If you're building C source code, the ts_all.rb file is autogenerated for
51
- you.
52
-
53
- = Known Issues
54
- === FreeBSD
55
- If you're building on FreeBSD, a standard /proc filesystem read approach is
56
- used if mounted. Otherwise, a kvm interface is used. There are more fields
57
- available with the kvm interface, but keep in mind that you need to be a
58
- member of the kvm group (or root) to use this. You can tweak the extconf.rb
59
- file manually if you want to force the issue.
60
-
61
- === OpenBSD, NetBSD
62
- This library will attempt to use the kvm interface. It is untested,
63
- however.
59
+ == Known Issues
60
+ === BSD
61
+ A kvm interface is used. That means the owner of the process using the
62
+ sys-proctable library needs to be a member of the kvm group (or root).
64
63
 
65
64
  === Solaris
66
65
  The cmdline member on Solaris is limited to 80 characters unless you (or
@@ -75,27 +74,19 @@
75
74
  Proc::ProcessTable module. You can find that module on CPAN. Point your
76
75
  browser at http://search.cpan.org.
77
76
 
78
- === Misc
79
- If you build your library as a C extension (which is what will happen if
80
- you run the 'build', 'test', or 'install' Rake tasks), then the .rb files
81
- file under 'lib/sys/' are renamed to '.orig', except top.rb. This is
82
- necessary to prevent mkmf from installing them during a 'make install'.
83
-
84
- The 'clean' Rake task will rename them back to '.rb'.
85
-
86
77
  === Thread Safety
87
- I am not currently using a thread-safe version of readdir(). I am not
88
- especially concerned about it either. If you are trying to read information
78
+ I am not currently using a thread-safe version of readdir(). I am not
79
+ especially concerned about it either. If you are trying to read information
89
80
  out of /proc from different threads at the same time there is something
90
81
  seriously wrong with your code logic. Using readdir_r() still won't solve
91
82
  all potential thread safety issues anyway.
92
83
 
93
- = Future Plans
84
+ == Future Plans
94
85
  Research has indicated that the kvm approach is less favored than a sysctl
95
86
  approach on BSD variants. I will try to add this interface in a future
96
87
  release.
97
88
 
98
- = Acknowledgements
89
+ == Acknowledgements
99
90
  This library is largely based on the Perl module Proc::ProcessTable by
100
91
  Dan Urist. Many ideas, as well as large chunks of code, were taken
101
92
  from his work. So, a big THANK YOU goes out to Dan Urist.
@@ -109,29 +100,27 @@
109
100
  Thanks go to James Hranicky for providing a patch that grabs name, eid,
110
101
  euid, gid and guid info in the Linux version, along with some general
111
102
  debugging help.
103
+
104
+ Thanks go to David Felstead for the original OS X code.
112
105
 
113
106
  Finally I'd like to thank all the folks who have submitted bug reports
114
107
  and/or patches.
115
108
 
116
- = Help Wanted
117
- I do not have access to all platforms. There are a few other major platforms
118
- out there, namely AIX, OpenBSD, and IRIX, among others, that I would
119
- like to see ports for. There are two ways you can help - either submit code
120
- for your particular platform or give me an account on your platform so I can
121
- develop on it.
109
+ == Help Wanted
110
+ I do not have access to all platforms. If your platform is not supported
111
+ then you will need to either submit a patch or give me a remote account
112
+ on a box with a compiler so that I can write the code.
122
113
 
123
- = More documentation
114
+ == More documentation
124
115
  See the documentation under the 'doc' directory for more information,
125
116
  including platform specific notes and issues.
126
117
 
127
- = License
128
- Ruby's
118
+ == License
119
+ Artistic 2.0
129
120
 
130
- = Copyright
121
+ == Copyright
131
122
  (C) 2003-2009 Daniel J. Berger
132
123
  All Rights Reserved.
133
124
 
134
- = Author
125
+ == Author
135
126
  Daniel J. Berger
136
- djberg96 at nospam at gmail dot com
137
- imperator on IRC (Freenode)
@@ -0,0 +1,167 @@
1
+ require 'rake'
2
+ require 'rake/clean'
3
+ require 'rake/testtask'
4
+ require 'rbconfig'
5
+
6
+ desc 'Clean the build files for C versions of sys-proctable'
7
+ task :clean do
8
+ rm_rf('.test-result') if File.exists?('.test-result')
9
+ Dir['*.gem'].each{ |f| File.delete(f) }
10
+
11
+ case Config::CONFIG['host_os']
12
+ when /bsd/i
13
+ dir = 'ext/bsd'
14
+ when /darwin/i
15
+ dir = 'ext/darwin'
16
+ when /hpux/i
17
+ dir = 'ext/hpux'
18
+ end
19
+
20
+ unless Config::CONFIG['host_os'] =~ /win32|mswin|dos|cygwin|mingw|linux|sunos|solaris/i
21
+ Dir.chdir(dir) do
22
+ if Dir['*.o'].length > 0
23
+ sh 'make distclean'
24
+ Dir['sys/proctable.*'].each{ |f| rm(f) if File.extname(f) != '.c' }
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ desc 'Build the sys-proctable library for C versions of sys-proctable'
31
+ task :build => [:clean] do
32
+ case Config::CONFIG['host_os']
33
+ when /bsd/i
34
+ dir = 'ext/bsd'
35
+ when /darwin/i
36
+ dir = 'ext/darwin'
37
+ when /hpux/i
38
+ dir = 'ext/hpux'
39
+ end
40
+
41
+ unless Config::CONFIG['host_os'] =~ /win32|mswin|dos|cygwin|mingw|linux|sunos|solaris/i
42
+ Dir.chdir(dir) do
43
+ ruby 'extconf.rb'
44
+ sh 'make'
45
+ cp 'proctable.' + Config::CONFIG['DLEXT'], 'sys'
46
+ end
47
+ end
48
+ end
49
+
50
+ desc 'Install the sys-proctable library'
51
+ task :install => [:build] do
52
+ file = nil
53
+ dir = File.join(Config::CONFIG['sitelibdir'], 'sys')
54
+
55
+ Dir.mkdir(dir) unless File.exists?(dir)
56
+
57
+ case Config::CONFIG['host_os']
58
+ when /mswin|win32|msdos|cygwin|mingw/i
59
+ file = 'lib/windows/sys/proctable.rb'
60
+ when /linux/i
61
+ file = 'lib/linux/sys/proctable.rb'
62
+ when /sunos|solaris/i
63
+ file = 'lib/sunos/sys/proctable.rb'
64
+ when /bsd/i
65
+ Dir.chdir('ext/bsd'){ sh 'make install' }
66
+ when /darwin/i
67
+ Dir.chdir('ext/darwin'){ sh 'make install' }
68
+ when /hpux/i
69
+ Dir.chdir('ext/hpux'){ sh 'make install' }
70
+ end
71
+
72
+ cp(file, dir, :verbose => true) if file
73
+ end
74
+
75
+ desc 'Uninstall the sys-proctable library'
76
+ task :uninstall do
77
+ case Config::CONFIG['host_os']
78
+ when /win32|mswin|dos|cygwin|mingw|linux|sunos|solaris/i
79
+ dir = File.join(Config::CONFIG['sitelibdir'], 'sys')
80
+ file = File.join(dir, 'proctable.rb')
81
+ else
82
+ dir = File.join(Config::CONFIG['sitearchdir'], 'sys')
83
+ file = File.join(dir, 'proctable.' + Config::CONFIG['DLEXT'])
84
+ end
85
+
86
+ rm(file)
87
+ end
88
+
89
+ desc 'Run the benchmark suite'
90
+ task :bench => [:build] do
91
+ sh "ruby -Ilib benchmarks/bench_ps.rb"
92
+ end
93
+
94
+ desc 'Run the example program'
95
+ task :example => [:build] do
96
+ sh 'ruby -Ilib -Iext examples/example_ps.rb'
97
+ end
98
+
99
+ desc 'Run the test suite'
100
+ Rake::TestTask.new do |t|
101
+ task :test => :build
102
+ t.libs << 'test'
103
+
104
+ case Config::CONFIG['host_os']
105
+ when /mswin|msdos|cygwin|mingw/i
106
+ t.test_files = FileList['test/test_sys_proctable_windows.rb']
107
+ t.libs << 'lib/windows'
108
+ when /linux/i
109
+ t.test_files = FileList['test/test_sys_proctable_linux.rb']
110
+ t.libs << 'lib/linux'
111
+ when /sunos|solaris/i
112
+ t.test_files = FileList['test/test_sys_proctable_sunos.rb']
113
+ t.libs << 'lib/sunos'
114
+ when /darwin/i
115
+ t.libs << 'ext/darwin'
116
+ t.test_files = FileList['test/test_sys_proctable_darwin.rb']
117
+ when /bsd/i
118
+ t.libs << 'ext/bsd'
119
+ t.test_files = FileList['test/test_sys_proctable_bsd.rb']
120
+ when /hpux/i
121
+ t.libs << 'ext/hpux'
122
+ t.test_files = FileList['test/test_sys_proctable_hpux.rb']
123
+ end
124
+ end
125
+
126
+ desc 'Create a gem'
127
+ task :gem do
128
+ spec = eval(IO.read('sys-proctable.gemspec'))
129
+
130
+ case Config::CONFIG['host_os']
131
+ when /bsd/i
132
+ spec.files << 'ext/bsd/sys/proctable.c'
133
+ spec.extra_rdoc_files << 'ext/bsd/sys/proctable.c'
134
+ spec.test_files << 'test/test_sys_proctable_bsd.rb'
135
+ spec.extensions = ['ext/bsd/extconf.rb']
136
+ when /darwin/i
137
+ spec.files << 'ext/darwin/sys/proctable.c'
138
+ spec.extra_rdoc_files << 'ext/darwin/sys/proctable.c'
139
+ spec.test_files << 'test/test_sys_proctable_darwin.rb'
140
+ spec.extensions = ['ext/darwin/extconf.rb']
141
+ when /hpux/i
142
+ spec.files << 'ext/hpux/sys/proctable.c'
143
+ spec.extra_rdoc_files << 'ext/hpux/sys/proctable.c'
144
+ spec.test_files << 'test/test_sys_proctable_hpux.rb'
145
+ spec.extensions = ['ext/hpux/extconf.rb']
146
+ when /linux/i
147
+ spec.require_paths = ['lib', 'lib/linux']
148
+ spec.files += ['lib/linux/sys/proctable.rb']
149
+ spec.test_files << 'test/test_sys_proctable_linux.rb'
150
+ when /sunos|solaris/i
151
+ spec.require_paths = ['lib', 'lib/sunos']
152
+ spec.files += ['lib/sunos/sys/proctable.rb']
153
+ spec.test_files << 'test/test_sys_proctable_sunos.rb'
154
+ when /mswin|win32|dos|cygwin|mingw/i
155
+ spec.require_paths = ['lib', 'lib/windows']
156
+ spec.files += ['lib/windows/sys/proctable.rb']
157
+ spec.test_files << 'test/test_sys_proctable_windows.rb'
158
+ end
159
+
160
+ Gem::Builder.new(spec).build
161
+ end
162
+
163
+ desc 'Install the sys-proctable library as a gem'
164
+ task :install_gem => [:gem] do
165
+ gem_name = Dir['*.gem'].first
166
+ sh "gem install #{gem_name}"
167
+ end
@@ -0,0 +1,21 @@
1
+ ########################################################################
2
+ # bench_ps.rb
3
+ #
4
+ # Benchmark program to show overall speed and compare the block form
5
+ # versus the non-block form. You should run this benchmark via the
6
+ # 'rake bench' Rake task.
7
+ ########################################################################
8
+ require 'benchmark'
9
+ require 'sys/proctable'
10
+
11
+ MAX = 10
12
+
13
+ Benchmark.bm do |bench|
14
+ bench.report("Block form"){
15
+ MAX.times{ Sys::ProcTable.ps{} }
16
+ }
17
+
18
+ bench.report("Non-block form"){
19
+ MAX.times{ Sys::ProcTable.ps }
20
+ }
21
+ end
@@ -7,9 +7,8 @@
7
7
 
8
8
  = Synopsis
9
9
  require "sys/top"
10
- include Sys
11
10
 
12
- Top.top(5).each{ |ps|
11
+ Sys::Top.top(5).each{ |ps|
13
12
  p ps
14
13
  }
15
14
 
@@ -18,7 +17,7 @@ VERSION
18
17
  Returns the version number of this package as a String.
19
18
 
20
19
  = Class Methods
21
- Top.top(number=10, field="pctcpu")
20
+ Sys::Top.top(number=10, field="pctcpu")
22
21
  Returns an array of ProcTableStruct's. The size of the array (i.e. the
23
22
  number of processes) that it returns is based on +number+, and sorted by
24
23
  +pctcpu+. By default, the size and field values are 10 and "pctcpu",
@@ -33,7 +32,7 @@ Top.top(number=10, field="pctcpu")
33
32
  http://www.rubyforge.org/projects/sysutils
34
33
 
35
34
  = License
36
- Ruby's
35
+ Artistic 2.0
37
36
 
38
37
  = Copyright
39
38
  (C) 2004-2009 Daniel J. Berger
@@ -45,6 +44,4 @@ Top.top(number=10, field="pctcpu")
45
44
  warranties of merchantability and fitness for a particular purpose.
46
45
 
47
46
  = Author
48
- Daniel J. Berger
49
- djberg96 at nospam at gmail dot com
50
- imperator on IRC (Freenode)
47
+ Daniel J. Berger
@@ -0,0 +1,20 @@
1
+ #######################################################################
2
+ # example_ps.rb
3
+ #
4
+ # Generic test program that demonstrates the use of ProcTable.ps. You
5
+ # can run this via the 'rake example' task.
6
+ #
7
+ # Modify as you see fit
8
+ #######################################################################
9
+ require 'sys/proctable'
10
+ include Sys
11
+
12
+ puts "VERSION: " + ProcTable::VERSION
13
+ sleep 2
14
+
15
+ ProcTable.ps{ |s|
16
+ ProcTable.fields.each{ |field|
17
+ puts "#{field}: " + s.send(field).to_s
18
+ }
19
+ puts '=' * 30
20
+ }
@@ -18,9 +18,11 @@ module Sys
18
18
  #
19
19
  def self.top(num=10, field='pctcpu')
20
20
  field = field.to_s if field.is_a?(Symbol)
21
+
22
+ windows = /mswin|win32|dos|cygwin|mingw/i
21
23
 
22
24
  # Sort by pid on Windows by default
23
- if Config::CONFIG['host_os'].match('mswin') && field == 'pctcpu'
25
+ if Config::CONFIG['host_os'].match(windows) && field == 'pctcpu'
24
26
  field = 'pid'
25
27
  end
26
28
 
@@ -15,7 +15,7 @@ module Sys
15
15
  class Error < StandardError; end
16
16
 
17
17
  # The version of the sys-proctable library
18
- VERSION = '0.8.1'
18
+ VERSION = '0.9.0'
19
19
 
20
20
  # The comm field corresponds to the 'name' field. The 'cmdline' field
21
21
  # is the CommandLine attribute on Windows XP or later, or the
@@ -0,0 +1,40 @@
1
+ require 'rubygems'
2
+ require 'rbconfig'
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = 'sys-proctable'
6
+ gem.version = '0.8.2'
7
+ gem.author = 'Daniel J. Berger'
8
+ gem.license = 'Artistic 2.0'
9
+ gem.email = 'djberg96@gmail.com'
10
+ gem.homepage = 'http://www.rubyforge.org/projects/sysutils'
11
+ gem.platform = Gem::Platform::CURRENT
12
+ gem.summary = 'An interface for providing process table information'
13
+ gem.has_rdoc = true
14
+ gem.test_files = ['test/test_sys_proctable_all.rb']
15
+
16
+ # Additional files for your platform are added by the 'rake gem' task.
17
+ gem.files = [
18
+ 'benchmarks/bench_ps.rb',
19
+ 'examples/example_ps.rb',
20
+ 'lib/sys/top.rb',
21
+ 'CHANGES',
22
+ 'MANIFEST',
23
+ 'Rakefile',
24
+ 'README',
25
+ 'sys-proctable.gemspec'
26
+ ]
27
+
28
+ gem.rubyforge_project = 'sysutils'
29
+ gem.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST', 'doc/top.txt']
30
+
31
+ gem.add_development_dependency('test-unit', '>= 2.0.3')
32
+
33
+ gem.description = <<-EOF
34
+ The sys-proctable library provides an interface for gathering information
35
+ about processes on your system, i.e. the process table. Most major
36
+ platforms are supported and, while different platforms may return
37
+ different information, the external interface is identical across
38
+ platforms.
39
+ EOF
40
+ end
@@ -23,7 +23,7 @@ class TC_ProcTable_All < Test::Unit::TestCase
23
23
  end
24
24
 
25
25
  def test_version
26
- assert_equal('0.8.1', ProcTable::VERSION)
26
+ assert_equal('0.9.0', ProcTable::VERSION)
27
27
  end
28
28
 
29
29
  def test_fields
@@ -69,6 +69,11 @@ class TC_ProcTable_All < Test::Unit::TestCase
69
69
  def test_new_not_allowed
70
70
  assert_raise(NoMethodError){ Sys::ProcTable.new }
71
71
  end
72
+
73
+ def test_error_class_defined
74
+ assert_not_nil(Sys::ProcTable::Error)
75
+ assert_kind_of(StandardError, Sys::ProcTable::Error.new)
76
+ end
72
77
 
73
78
  def teardown
74
79
  @pid = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sys-proctable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: x86-mswin32-60
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -9,20 +9,20 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-06 00:00:00 -06:00
12
+ date: 2009-10-15 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: test-unit
17
- type: :runtime
17
+ type: :development
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 2.0.2
23
+ version: 2.0.3
24
24
  version:
25
- description: An interface for providing process table information
25
+ description: " The sys-proctable library provides an interface for gathering information\n about processes on your system, i.e. the process table. Most major\n platforms are supported and, while different platforms may return\n different information, the external interface is identical across\n platforms.\n"
26
26
  email: djberg96@gmail.com
27
27
  executables: []
28
28
 
@@ -33,28 +33,33 @@ extra_rdoc_files:
33
33
  - README
34
34
  - MANIFEST
35
35
  - doc/top.txt
36
- - doc/windows.txt
37
36
  files:
37
+ - benchmarks/bench_ps.rb
38
+ - examples/example_ps.rb
38
39
  - lib/sys/top.rb
39
- - test/test_sys_proctable_all.rb
40
40
  - CHANGES
41
- - README
42
41
  - MANIFEST
42
+ - Rakefile
43
+ - README
44
+ - sys-proctable.gemspec
45
+ - test/test_sys_proctable_all.rb
43
46
  - doc/top.txt
44
- - lib/sys/proctable.rb
45
- - doc/windows.txt
47
+ - lib/windows/sys/proctable.rb
46
48
  has_rdoc: true
47
49
  homepage: http://www.rubyforge.org/projects/sysutils
50
+ licenses:
51
+ - Artistic 2.0
48
52
  post_install_message:
49
53
  rdoc_options: []
50
54
 
51
55
  require_paths:
52
56
  - lib
57
+ - lib/windows
53
58
  required_ruby_version: !ruby/object:Gem::Requirement
54
59
  requirements:
55
60
  - - ">="
56
61
  - !ruby/object:Gem::Version
57
- version: 1.8.2
62
+ version: "0"
58
63
  version:
59
64
  required_rubygems_version: !ruby/object:Gem::Requirement
60
65
  requirements:
@@ -65,9 +70,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
70
  requirements: []
66
71
 
67
72
  rubyforge_project: sysutils
68
- rubygems_version: 1.3.1
73
+ rubygems_version: 1.3.5
69
74
  signing_key:
70
- specification_version: 2
75
+ specification_version: 3
71
76
  summary: An interface for providing process table information
72
77
  test_files:
73
78
  - test/test_sys_proctable_all.rb
@@ -1,106 +0,0 @@
1
- = Description
2
- A Ruby interface for gathering process information. For MS Windows,
3
- the process information is gathered via OLE + WMI, using pure Ruby.
4
-
5
- = Synopsis
6
- require 'sys/proctable'
7
- include Sys
8
-
9
- # Everything
10
- ProcTable.ps{ |p|
11
- puts p.pid.to_s
12
- puts p.comm
13
- ...
14
- }
15
-
16
- or
17
-
18
- # A single pid
19
- p = ProcTable.ps(1234)
20
- puts p.pid.to_s
21
- puts p.comm
22
- ...
23
-
24
- or
25
-
26
- # Return the results as an array of ProcTableStructs
27
- a = ProcTable.ps
28
- a.each do |p|
29
- puts a.pid
30
- ...
31
- end
32
-
33
- = Constants
34
- VERSION
35
- Returns the current version number for this library (as a string).
36
-
37
- = Class Methods
38
- ProcTable.fields
39
- Returns an Array of fields available on the current OS in the
40
- ProcTableStruct.
41
-
42
- ProcTable.ps(pid=nil, host='localhost')
43
- ProcTable.ps{ |s| ... }
44
- Returns a struct of type ProcTableStruct for every process in the proc
45
- table in block form. Otherwise it returns an array of ProcTableStruct's.
46
-
47
- If 'pid' is provided, then only a struct for that pid is returned, or
48
- nil if it is not found.
49
-
50
- If 'host' is provided, then processes from that host are gathered. By
51
- default, process information is gathered on the local host.
52
-
53
- = Supported fields
54
- You can also view the supported fields with the Sys::ProcTable.fields
55
- method.
56
-
57
- = Notes
58
- For the sake of attempting to provide a somewhat common API, the 'comm'
59
- and 'cmdline' fields have been included as part of the structure. The
60
- 'comm' member corresponds to the Name attribute of Win32_Process. The
61
- 'cmdline' attribute corresponds to either the Executable_Path attribute
62
- (on Windows 2000 or earlier) or the CommandLine attribute (on Windows XP
63
- and later).
64
-
65
- Also note that the ProcessId and ParentProcessId attributes have been
66
- abbreviated as 'pid' and 'ppid' in the struct members, again to keep the
67
- members more consistent between platforms.
68
-
69
- The "Mem Usage" and "VM Size" that you may be used to seeing in your Task
70
- Manager window (probably) correspond to the 'working_set_size' and
71
- 'page_file_usage' struct members, respectively, keeping in mind that
72
- those values are in bytes, not kilobytes. I say 'probably' because
73
- comments that I've read online indicate that it may not always line up
74
- with what you see in the Task Manager, based on the current version (or
75
- even Service Pack) of Windows that you are using.
76
-
77
- = Future Plans
78
- Possibly use the Win32_PerfFormattedData_PerfProc_Process class to get
79
- additional process information.
80
-
81
- = Known Bugs
82
- Versions of Ruby earlier than 1.8.2 resulted in segfaults when trying to
83
- run this code. You will likely encounter the same behavior.
84
-
85
- Please log any additional bug reports on the project page at
86
- http://www.rubyforge.org/projects/sysutils
87
-
88
- = License
89
- Ruby's
90
-
91
- = Copyright
92
- (C) 2003-2009 Daniel J. Berger
93
- All Rights Reserved
94
-
95
- = Warranty
96
- This package is provided "as is" and without any express or
97
- implied warranties, including, without limitation, the implied
98
- warranties of merchantability and fitness for a particular purpose.
99
-
100
- = Author
101
- Daniel J. Berger
102
- djberg96 at nospam at gmail dot com
103
- imperator on IRC (freenode)
104
-
105
- = See Also
106
- OLE + WMI