sys-cpu 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +13 -0
- data/MANIFEST +11 -10
- data/README +24 -24
- data/Rakefile +95 -0
- data/doc/bsd.txt +7 -25
- data/doc/hpux.txt +7 -28
- data/doc/sunos.txt +7 -29
- data/doc/windows.txt +8 -30
- data/examples/example_sys_cpu_bsd.rb +19 -0
- data/examples/example_sys_cpu_hpux.rb +27 -0
- data/examples/example_sys_cpu_linux.rb +25 -0
- data/examples/example_sys_cpu_sunos.rb +21 -0
- data/examples/example_sys_cpu_windows.rb +24 -0
- data/ext/bsd/bsd.c +39 -23
- data/ext/hpux/hpux.c +219 -0
- data/ext/sunos/sunos.c +281 -0
- data/ext/version.h +1 -1
- data/install.rb +84 -0
- data/lib/linux/sys/cpu.rb +122 -0
- data/lib/windows/sys/cpu.rb +784 -0
- data/sys-cpu.gemspec +47 -0
- data/test/test_sys_cpu.rb +23 -0
- data/test/{tc_bsd.rb → test_sys_cpu_bsd.rb} +33 -12
- data/test/{tc_hpux.rb → test_sys_cpu_hpux.rb} +16 -13
- data/test/test_sys_cpu_linux.rb +34 -0
- data/test/{tc_sunos.rb → test_sys_cpu_sunos.rb} +10 -8
- data/test/{tc_version.rb → test_sys_cpu_version.rb} +5 -2
- data/test/{tc_windows.rb → test_sys_cpu_windows.rb} +25 -22
- metadata +42 -19
- data/test/tc_cpu.rb +0 -17
- data/test/tc_linux.rb +0 -34
data/CHANGES
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
== 0.6.2 - ???
|
2
|
+
* Fixed a bug in the cpu_freq function (which would only be noticed on
|
3
|
+
certain platforms in cases where the CPU.freq method failed). Thanks
|
4
|
+
go to Edho P Arief for the spot.
|
5
|
+
* Explicitly add sys/param.h on OpenBSD, and default to the HW_MODEL mib
|
6
|
+
because HW_MACHINE does not exist. Thanks go to Edho P Arief for the patch.
|
7
|
+
* Updated my support notes. In short I will support 1.8.6 and 1.9.x. I will
|
8
|
+
not support any 1.8.x branch later than 1.8.6.
|
9
|
+
* Removed redundant information in the various .txt files that is already
|
10
|
+
covered in the README file.
|
11
|
+
* Test files renamed.
|
12
|
+
* Added test-unit 2.x as a development dependency.
|
13
|
+
|
1
14
|
== 0.6.1 - 4-Jan-2009
|
2
15
|
* Fix for OS X 10.5.x. Thanks go to Victor Costan for the spot and the patch.
|
3
16
|
* Updated the gemspec and some other minor changes.
|
data/MANIFEST
CHANGED
@@ -9,11 +9,11 @@
|
|
9
9
|
* doc/linux.txt
|
10
10
|
* doc/sunos.txt
|
11
11
|
* doc/windows.txt
|
12
|
-
* examples/
|
13
|
-
* examples/
|
14
|
-
* examples/
|
15
|
-
* examples/
|
16
|
-
* examples/
|
12
|
+
* examples/example_sys_cpu_freebsd.rb
|
13
|
+
* examples/example_sys_cpu_hpux.rb
|
14
|
+
* examples/example_sys_cpu_linux.rb
|
15
|
+
* examples/example_sys_cpu_sunos.rb
|
16
|
+
* examples/example_sys_cpu_windows.rb
|
17
17
|
* ext/extconf.rb
|
18
18
|
* ext/version.h
|
19
19
|
* ext/bsd/bsd.c
|
@@ -21,8 +21,9 @@
|
|
21
21
|
* ext/sunos/sunos.c
|
22
22
|
* lib/sys/linux.rb
|
23
23
|
* lib/sys/windows.rb
|
24
|
-
* test/
|
25
|
-
* test/
|
26
|
-
* test/
|
27
|
-
* test/
|
28
|
-
* test/
|
24
|
+
* test/test_sys_cpu.rb
|
25
|
+
* test/test_sys_cpu_bsd.rb
|
26
|
+
* test/test_sys_cpu_hpux.rb
|
27
|
+
* test/test_sys_cpu_sunos.rb
|
28
|
+
* test/test_sys_cpu_linux.rb
|
29
|
+
* test/test_sys_cpu_windows.rb
|
data/README
CHANGED
@@ -1,19 +1,18 @@
|
|
1
|
-
|
1
|
+
== Description
|
2
2
|
A Ruby interface for getting cpu information.
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
rake install (non-gem)
|
8
|
-
== Gem installation
|
9
|
-
rake test (optional)
|
10
|
-
ruby sys-cpu.gemspec
|
11
|
-
gem install sys-cpu-X.Y.Z.gem # where 'X.Y.Z' corresponds to the version.
|
4
|
+
== Installation
|
5
|
+
gem install sys-cpu
|
6
|
+
gem install sys-cpu --platform mswin32 # MS Windows
|
12
7
|
|
13
|
-
|
8
|
+
== Notes
|
14
9
|
=== All Platforms
|
15
10
|
As of version 0.5.0 Ruby 1.8.0 or later is required. It may work with
|
16
11
|
earlier versions, but I will not support it.
|
12
|
+
|
13
|
+
I do not support any Ruby 1.8.x branch after 1.8.6. It should work on those
|
14
|
+
versions of Ruby but if it breaks I'm not going to go out of my way to fix
|
15
|
+
it. I will, however, support the 1.9.x/2.x branch.
|
17
16
|
|
18
17
|
=== Solaris
|
19
18
|
Currently there is no 'processors()' iterative method for multi-cpu systems.
|
@@ -39,8 +38,8 @@
|
|
39
38
|
file after you run 'rake install' (via install.rb).
|
40
39
|
|
41
40
|
=== HP-UX
|
42
|
-
Unlike other platforms, you can get load averages for an individual cpu
|
43
|
-
multi-cpu systems
|
41
|
+
Unlike other platforms, you can get load averages for an individual cpu in
|
42
|
+
multi-cpu systems. See documentation for more details.
|
44
43
|
|
45
44
|
=== MS Windows
|
46
45
|
This is a pure Ruby implementation using the win32ole package + WMI. The C
|
@@ -51,29 +50,30 @@
|
|
51
50
|
is no longer any delay. Also, the 'processors' method has been
|
52
51
|
added and the 'supported' method has been dropped. See the documentation
|
53
52
|
for other changes.
|
53
|
+
|
54
|
+
== Acknowledgements
|
55
|
+
Thanks go to the MPlayer team for some source code that helped me on
|
56
|
+
certain versions of FreeBSD.
|
54
57
|
|
55
|
-
|
56
|
-
None that I'm aware of.
|
58
|
+
== Known Bugs
|
59
|
+
None that I'm aware of. Please report bugs on the project page at
|
57
60
|
http://www.rubyforge.org/projects/sysutils.
|
58
61
|
|
59
|
-
|
62
|
+
== Future Plans
|
60
63
|
Add iterative CPU.processors method.
|
61
64
|
Make CPU.freq work on OS X.
|
62
65
|
Add more information in general, such as what 'prtdiag' shows.
|
63
66
|
|
64
|
-
|
65
|
-
|
67
|
+
== License
|
68
|
+
Artistic 2.0
|
66
69
|
|
67
|
-
|
68
|
-
(C) 2003-
|
69
|
-
All Rights Reserved
|
70
|
+
== Copyright
|
71
|
+
(C) 2003-2009 Daniel J. Berger, All Rights Reserved
|
70
72
|
|
71
|
-
|
73
|
+
== Warranty
|
72
74
|
This package is provided "as is" and without any express or
|
73
75
|
implied warranties, including, without limitation, the implied
|
74
76
|
warranties of merchantability and fitness for a particular purpose.
|
75
77
|
|
76
|
-
|
78
|
+
== Author
|
77
79
|
Daniel J. Berger
|
78
|
-
djberg96 at nospam at gmail dot com
|
79
|
-
imperator on IRC (irc.freenode.net)
|
data/Rakefile
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/clean'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rbconfig'
|
5
|
+
|
6
|
+
desc "Clean the build files for the sys-cpu source for UNIX systems"
|
7
|
+
task :clean do
|
8
|
+
FileUtils.rm_rf('sys') if File.exists?('sys')
|
9
|
+
FileUtils.rm_rf('lib/sys/cpu.rb') if File.exists?('lib/sys/cpu.rb')
|
10
|
+
Dir.chdir('ext') do
|
11
|
+
unless Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|linux/i
|
12
|
+
FileUtils.rm_rf('sys') if File.exists?('sys')
|
13
|
+
FileUtils.rm_rf('cpu.c') if File.exists?('cpu.c')
|
14
|
+
build_file = 'cpu.' + Config::CONFIG['DLEXT']
|
15
|
+
sh 'make distclean' if File.exists?(build_file)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Build the sys-cpu library on UNIX systems (but don't install it)"
|
21
|
+
task :build => [:clean] do
|
22
|
+
Dir.chdir('ext') do
|
23
|
+
unless Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|linux/i
|
24
|
+
ruby 'extconf.rb'
|
25
|
+
sh 'make'
|
26
|
+
build_file = 'cpu.' + Config::CONFIG['DLEXT']
|
27
|
+
Dir.mkdir('sys') unless File.exists?('sys')
|
28
|
+
FileUtils.cp(build_file, 'sys')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "Build the gem."
|
34
|
+
task :gem do
|
35
|
+
spec = eval(IO.read('sys-cpu.gemspec'))
|
36
|
+
Gem::Builder.new(spec).build
|
37
|
+
end
|
38
|
+
|
39
|
+
if Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|linux/i
|
40
|
+
desc "Install the sys-cpu library"
|
41
|
+
task :install do
|
42
|
+
sh 'ruby install.rb'
|
43
|
+
end
|
44
|
+
else
|
45
|
+
desc "Install the sys-cpu library"
|
46
|
+
task :install => [:build] do
|
47
|
+
Dir.chdir('ext') do
|
48
|
+
sh 'make install'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
desc "Run the example program"
|
54
|
+
task :example => [:build] do
|
55
|
+
Dir.mkdir('sys') unless File.exists?('sys')
|
56
|
+
if Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|linux/i
|
57
|
+
if Config::CONFIG['host_os'].match('linux')
|
58
|
+
FileUtils.cp('lib/sys/linux.rb', 'sys/cpu.rb')
|
59
|
+
else
|
60
|
+
FileUtils.cp('lib/sys/windows.rb', 'sys/cpu.rb')
|
61
|
+
end
|
62
|
+
else
|
63
|
+
build_file = 'ext/cpu.' + Config::CONFIG['DLEXT']
|
64
|
+
FileUtils.cp(build_file, 'sys')
|
65
|
+
end
|
66
|
+
|
67
|
+
case Config::CONFIG['host_os']
|
68
|
+
when /bsd|darwin|mach|osx/i
|
69
|
+
file = 'examples/test_cpu_bsd.rb'
|
70
|
+
when /hpux/i
|
71
|
+
file = 'examples/test_cpu_hpux.rb'
|
72
|
+
when /linux/i
|
73
|
+
file = 'examples/test_cpu_linux.rb'
|
74
|
+
when /sunos|solaris/i
|
75
|
+
file = 'examples/test_cpu_sunos.rb'
|
76
|
+
when /mswin|win32|cygwin|mingw|dos/i
|
77
|
+
file = 'examples/test_cpu_windows.rb'
|
78
|
+
end
|
79
|
+
sh "ruby -I. -Iext -Ilib #{file}"
|
80
|
+
end
|
81
|
+
|
82
|
+
Rake::TestTask.new do |t|
|
83
|
+
if Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|windows/i
|
84
|
+
t.libs << 'lib/windows'
|
85
|
+
elsif Config::CONFIG['host_os'] =~ /linux/i
|
86
|
+
t.libs << 'lib/linux'
|
87
|
+
else
|
88
|
+
task :test => :build
|
89
|
+
t.libs << 'ext'
|
90
|
+
t.libs.delete('lib')
|
91
|
+
end
|
92
|
+
|
93
|
+
t.libs << 'test'
|
94
|
+
t.test_files = FileList['test/test_sys_cpu.rb']
|
95
|
+
end
|
data/doc/bsd.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
1
|
+
== Description
|
2
2
|
Sys::CPU - An interface for various cpu statistics
|
3
3
|
|
4
|
-
|
4
|
+
== Synopsis
|
5
5
|
require "sys/cpu"
|
6
6
|
include Sys
|
7
7
|
|
@@ -13,11 +13,11 @@
|
|
13
13
|
puts "CPU model: " + CPU.model
|
14
14
|
puts "Load averages: " + CPU.load_avg.join(", ")
|
15
15
|
|
16
|
-
|
16
|
+
== Constants
|
17
17
|
VERSION
|
18
18
|
Returns the current version number for this package.
|
19
19
|
|
20
|
-
|
20
|
+
== Class Methods
|
21
21
|
CPU.architecture
|
22
22
|
Returns the cpu's architecture.
|
23
23
|
|
@@ -40,28 +40,10 @@ CPU.model
|
|
40
40
|
CPU.num_cpu
|
41
41
|
Returns an integer indicating the number of cpu's on the system.
|
42
42
|
|
43
|
-
|
43
|
+
== Error Classes
|
44
44
|
CPU::Error < StandardError
|
45
45
|
Raised is response to internal function errors, usually relating to an
|
46
46
|
invalid cpu number.
|
47
47
|
|
48
|
-
|
49
|
-
|
50
|
-
http://www.rubyforge.org/projects/sysutils
|
51
|
-
|
52
|
-
= Copyright
|
53
|
-
(C) 2003-2007 Daniel J. Berger
|
54
|
-
All Rights Reserved
|
55
|
-
|
56
|
-
= Warranty
|
57
|
-
This package is provided "as is" and without any express or
|
58
|
-
implied warranties, including, without limitation, the implied
|
59
|
-
warranties of merchantability and fitness for a particular purpose.
|
60
|
-
|
61
|
-
= License
|
62
|
-
Ruby's
|
63
|
-
|
64
|
-
= Author
|
65
|
-
Daniel J. Berger
|
66
|
-
djberg96 at nospam at gmail dot com
|
67
|
-
imperator on IRC (Freenode)
|
48
|
+
== More Information
|
49
|
+
See the README file for more information.
|
data/doc/hpux.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
1
|
+
== Description
|
2
2
|
Sys::CPU - An interface for various cpu statistics
|
3
3
|
|
4
|
-
|
4
|
+
== Synopsis
|
5
5
|
require "sys/cpu"
|
6
6
|
include Sys
|
7
7
|
|
@@ -11,11 +11,11 @@
|
|
11
11
|
puts "Number of active cpu's: " + CPU.num_active_cpu.to_s
|
12
12
|
puts "Load averages: " + CPU.load_avg.join(", ")
|
13
13
|
|
14
|
-
|
14
|
+
== Constants
|
15
15
|
VERSION
|
16
16
|
Returns the current version number for this package.
|
17
17
|
|
18
|
-
|
18
|
+
== Class Methods
|
19
19
|
CPU.architecture
|
20
20
|
Returns the cpu architecture, e.g. PA RISC 1.2, etc.
|
21
21
|
|
@@ -45,31 +45,10 @@ CPU.num_cpu
|
|
45
45
|
CPU.num_active_cpu
|
46
46
|
Returns an integer indicating the number of active cpu's on the system.
|
47
47
|
|
48
|
-
|
48
|
+
== Error Classes
|
49
49
|
CPU::Error < StandardError
|
50
50
|
Raised is response to internal function errors, usually relating to an
|
51
51
|
invalid cpu number.
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
http://www.rubyforge.org/projects/sysutils
|
56
|
-
|
57
|
-
= Future Plans
|
58
|
-
Add cpu model and type
|
59
|
-
|
60
|
-
= Copyright
|
61
|
-
(C) 2003-2007 Daniel J. Berger
|
62
|
-
All Rights Reserved
|
63
|
-
|
64
|
-
= Warranty
|
65
|
-
This package is provided "as is" and without any express or
|
66
|
-
implied warranties, including, without limitation, the implied
|
67
|
-
warranties of merchantability and fitness for a particular purpose.
|
68
|
-
|
69
|
-
= License
|
70
|
-
Ruby's
|
71
|
-
|
72
|
-
= Author
|
73
|
-
Daniel J. Berger
|
74
|
-
djberg96 at nospam at gmail dot com
|
75
|
-
imperator on IRC (Freenode)
|
53
|
+
== More Information
|
54
|
+
See the README file for more information.
|
data/doc/sunos.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
1
|
+
== Description
|
2
2
|
Sys::CPU - An interface for various cpu statistics
|
3
3
|
|
4
|
-
|
4
|
+
== Synopsis
|
5
5
|
require "sys/cpu"
|
6
6
|
include Sys
|
7
7
|
|
@@ -14,11 +14,11 @@
|
|
14
14
|
puts "CPU model: " + CPU.model
|
15
15
|
puts "Load averages: " + CPU.load_avg.join(", ")
|
16
16
|
|
17
|
-
|
17
|
+
== Constants
|
18
18
|
VERSION
|
19
19
|
Returns the current version number for this package.
|
20
20
|
|
21
|
-
|
21
|
+
== Class Methods
|
22
22
|
CPU.freq(cpu_num=0)
|
23
23
|
Returns an integer indicating the speed (i.e. frequency in Mhz) of
|
24
24
|
'cpu_num', or CPU 0 if no number is provided.
|
@@ -47,32 +47,10 @@ CPU.num_cpu
|
|
47
47
|
CPU.state(cpu_num)
|
48
48
|
Returns a string indicating the cpu state of 'cpu_num'.
|
49
49
|
|
50
|
-
|
50
|
+
== Error Classes
|
51
51
|
CPU::Error < StandardError
|
52
52
|
Raised is response to internal function errors, usually relating to an
|
53
53
|
invalid cpu number.
|
54
54
|
|
55
|
-
|
56
|
-
|
57
|
-
http://www.rubyforge.org/projects/sysutils
|
58
|
-
|
59
|
-
= Future Plans
|
60
|
-
Add more information, such as what prtdiag shows.
|
61
|
-
Get the model() method to display more specific information.
|
62
|
-
|
63
|
-
= Copyright
|
64
|
-
(C) 2003-2007 Daniel J. Berger
|
65
|
-
All Rights Reserved
|
66
|
-
|
67
|
-
= Warranty
|
68
|
-
This package is provided "as is" and without any express or
|
69
|
-
implied warranties, including, without limitation, the implied
|
70
|
-
warranties of merchantability and fitness for a particular purpose.
|
71
|
-
|
72
|
-
= License
|
73
|
-
Ruby's
|
74
|
-
|
75
|
-
= Author
|
76
|
-
Daniel J. Berger
|
77
|
-
djberg96 at nospam at gmail dot com
|
78
|
-
imperator on IRC (Freenode)
|
55
|
+
== More Information
|
56
|
+
See the README file for more information.
|
data/doc/windows.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
1
|
+
== Description
|
2
2
|
Sys::CPU - An interface for various cpu statistics
|
3
3
|
|
4
|
-
|
4
|
+
== Synopsis
|
5
5
|
require "sys/cpu"
|
6
6
|
include Sys
|
7
7
|
|
@@ -18,11 +18,11 @@
|
|
18
18
|
puts "Model: " + CPU.model
|
19
19
|
puts "Architecture: " + CPU.architecture
|
20
20
|
|
21
|
-
|
21
|
+
== Constants
|
22
22
|
VERSION
|
23
23
|
Returns the current version number for this package.
|
24
24
|
|
25
|
-
|
25
|
+
== Class Methods
|
26
26
|
CPU.architecture(host=localhost)
|
27
27
|
Returns the architecture of the cpu, e.g. x86 Family 15 Model 2
|
28
28
|
|
@@ -101,13 +101,13 @@ CPU.processors(host=localhost){ |cpu| ... }
|
|
101
101
|
CPU.type(host=localhost)
|
102
102
|
Returns a string indicating the type of processor, e.g. GenuineIntel.
|
103
103
|
|
104
|
-
|
104
|
+
== Exception Classes
|
105
105
|
CPU::Error < StandardError
|
106
106
|
Raised is response to internal function errors, most likely to be raised
|
107
107
|
in the event that in invalid cpu number is provided for the 'freq'
|
108
108
|
method.
|
109
109
|
|
110
|
-
|
110
|
+
== Notes
|
111
111
|
Some of the CPUStruct members may be nil. As far as I can tell, this
|
112
112
|
means that Windows is unable to determine the value for the attribute due
|
113
113
|
to your BIOS and/or BIOS settings. There is nothing clear in the
|
@@ -126,27 +126,5 @@ CPU::Error < StandardError
|
|
126
126
|
frame) for a list of attributes and their meaning. Link courtesy of
|
127
127
|
tinyurl.com.
|
128
128
|
|
129
|
-
|
130
|
-
|
131
|
-
http://www.rubyforge.org/projects/sysutils
|
132
|
-
|
133
|
-
= Future Plans
|
134
|
-
Add more detailed CPU usage information via the
|
135
|
-
Win32_PerfFormattedData_PerfOS_Processor class.
|
136
|
-
|
137
|
-
= Copyright
|
138
|
-
(C) 2003-2007 Daniel J. Berger
|
139
|
-
All Rights Reserved
|
140
|
-
|
141
|
-
= Warranty
|
142
|
-
This package is provided "as is" and without any express or
|
143
|
-
implied warranties, including, without limitation, the implied
|
144
|
-
warranties of merchantability and fitness for a particular purpose.
|
145
|
-
|
146
|
-
= License
|
147
|
-
Ruby's
|
148
|
-
|
149
|
-
= Author
|
150
|
-
Daniel J. Berger
|
151
|
-
djberg96 at nospam at gmail dot com
|
152
|
-
imperator/rubyhacker1 on IRC (Freenode)
|
129
|
+
== More Information
|
130
|
+
See the README file for more information.
|