sys-cpu 0.5.4-mswin32 → 0.5.5-mswin32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +10 -0
- data/README +62 -35
- data/doc/freebsd.txt +18 -18
- data/doc/hpux.txt +15 -15
- data/doc/sunos.txt +14 -14
- data/doc/windows.txt +40 -40
- data/lib/sys/cpu.rb +1 -1
- data/test/tc_linux.rb +1 -1
- data/test/tc_version.rb +17 -6
- data/test/tc_windows.rb +1 -1
- metadata +2 -2
data/CHANGES
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
== 0.5.5 - 17-Nov-2006
|
2
|
+
* Fixed a bug in the Linux version where there could be a key but no
|
3
|
+
associated value, causing a String#strip! call to fail. Now the value is
|
4
|
+
simply left at nil.
|
5
|
+
* Refactored the CPU.processors method on Linux, including the removal of '?'
|
6
|
+
from the CPUStruct members for the boolean methods (Ruby doesn't like them).
|
7
|
+
* Minor tweaks and updates to the documentation, including the README.
|
8
|
+
* Modified the gemspec so that it sets the platform properly for Linux
|
9
|
+
and Windows.
|
10
|
+
|
1
11
|
== 0.5.4 - 12-Jul-2006
|
2
12
|
* Added a gemspec (and a gem on RubyForge).
|
3
13
|
* The CPU.architecture method on HP-UX now returns nil if it cannot be
|
data/README
CHANGED
@@ -1,51 +1,78 @@
|
|
1
|
-
|
2
|
-
A Ruby interface for getting cpu information.
|
1
|
+
= Description
|
2
|
+
A Ruby interface for getting cpu information.
|
3
3
|
|
4
|
-
|
4
|
+
= Installation
|
5
5
|
=== Linux and Windows:
|
6
|
-
ruby test/ts_all.rb (optional)
|
7
|
-
ruby install.rb
|
6
|
+
ruby test/ts_all.rb (optional)
|
7
|
+
ruby install.rb
|
8
8
|
|
9
9
|
=== All other platforms:
|
10
|
-
ruby extconf.rb
|
11
|
-
make
|
12
|
-
ruby test/ts_all.rb (optional)
|
13
|
-
make site-install
|
10
|
+
ruby extconf.rb
|
11
|
+
make
|
12
|
+
ruby test/ts_all.rb (optional)
|
13
|
+
make site-install
|
14
14
|
|
15
|
-
|
15
|
+
= Notes
|
16
16
|
=== All Platforms
|
17
|
-
As of version 0.5.0 Ruby 1.8.0 or later is required. It may work with
|
18
|
-
earlier versions, but I will not support it. In addition, a test file is
|
19
|
-
no longer auto-generated for you. If wish to run the test suite, cd to the
|
20
|
-
'test' directory and run the test suite appropriate for your platform.
|
17
|
+
As of version 0.5.0 Ruby 1.8.0 or later is required. It may work with
|
18
|
+
earlier versions, but I will not support it. In addition, a test file is
|
19
|
+
no longer auto-generated for you. If wish to run the test suite, cd to the
|
20
|
+
'test' directory and run the test suite appropriate for your platform.
|
21
21
|
|
22
22
|
=== Solaris
|
23
|
-
Currently there is no 'processors()' iterative method for multi-cpu systems.
|
24
|
-
I plan to add it this in a future release.
|
23
|
+
Currently there is no 'processors()' iterative method for multi-cpu systems.
|
24
|
+
I plan to add it this in a future release.
|
25
25
|
|
26
26
|
=== Linux
|
27
|
-
This is pure Ruby. This version reads information out of /proc/cpuinfo and
|
28
|
-
/proc/loadavg, so if /proc isn't mounted it won't work.
|
27
|
+
This is pure Ruby. This version reads information out of /proc/cpuinfo and
|
28
|
+
/proc/loadavg, so if /proc isn't mounted it won't work.
|
29
29
|
|
30
|
-
The key-value information in /proc/cpuinfo is stored internally (i.e. in
|
31
|
-
memory) as an array of hashes when you first 'require' this package. This
|
32
|
-
overhead is exceptionally minimal, given that your average cpuinfo file
|
33
|
-
contains less than 1k of text (and I don't store whitespace or newlines).
|
30
|
+
The key-value information in /proc/cpuinfo is stored internally (i.e. in
|
31
|
+
memory) as an array of hashes when you first 'require' this package. This
|
32
|
+
overhead is exceptionally minimal, given that your average cpuinfo file
|
33
|
+
contains less than 1k of text (and I don't store whitespace or newlines).
|
34
34
|
|
35
|
-
The text documentation for Linux is dynamically
|
36
|
-
build process
|
37
|
-
You will see a doc/linux.txt
|
35
|
+
The text documentation for Linux is dynamically generated during the
|
36
|
+
build process because the fields vary depending on your setup. So, don't
|
37
|
+
look at it until *after* you've installed it. You will see a doc/linux.txt
|
38
|
+
file after you run install.rb.
|
38
39
|
|
39
40
|
=== HP-UX
|
40
|
-
Unlike other platforms, you can get load averages for an individual cpu (in
|
41
|
-
multi-cpu systems). See documentation for more details.
|
41
|
+
Unlike other platforms, you can get load averages for an individual cpu (in
|
42
|
+
multi-cpu systems). See documentation for more details.
|
42
43
|
|
43
44
|
=== Win32
|
44
|
-
This is a pure Ruby implementation using the win32ole package + WMI. The C
|
45
|
-
version has been scrapped.
|
46
|
-
|
47
|
-
As of version 0.5.0, the CPU.usage method has been removed in favor of the
|
48
|
-
CPU.load_avg method. This does not (currently) use a perf counter, so there
|
49
|
-
is no longer any delay. Also, the 'processors' method has been
|
50
|
-
added and the 'supported' method has been dropped. See the documentation
|
51
|
-
for other changes.
|
45
|
+
This is a pure Ruby implementation using the win32ole package + WMI. The C
|
46
|
+
version has been scrapped.
|
47
|
+
|
48
|
+
As of version 0.5.0, the CPU.usage method has been removed in favor of the
|
49
|
+
CPU.load_avg method. This does not (currently) use a perf counter, so there
|
50
|
+
is no longer any delay. Also, the 'processors' method has been
|
51
|
+
added and the 'supported' method has been dropped. See the documentation
|
52
|
+
for other changes.
|
53
|
+
|
54
|
+
= Known Bugs
|
55
|
+
None that I'm aware of. Please report bugs on the project page at
|
56
|
+
http://www.rubyforge.org/projects/sysutils.
|
57
|
+
|
58
|
+
= Future Plans
|
59
|
+
=== Solaris
|
60
|
+
Add iterative CPU.processors method.
|
61
|
+
Add more information in general, such as what 'prtdiag' shows.
|
62
|
+
|
63
|
+
= License
|
64
|
+
Ruby's.
|
65
|
+
|
66
|
+
= Copyright
|
67
|
+
(C) 2003-2006 Daniel J. Berger
|
68
|
+
All Rights Reserved
|
69
|
+
|
70
|
+
= Warranty
|
71
|
+
This package is provided "as is" and without any express or
|
72
|
+
implied warranties, including, without limitation, the implied
|
73
|
+
warranties of merchantability and fitness for a particular purpose.
|
74
|
+
|
75
|
+
= Author
|
76
|
+
Daniel J. Berger
|
77
|
+
djberg96 at gmail dot com
|
78
|
+
imperator on IRC (irc.freenode.net)
|
data/doc/freebsd.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,14 +13,14 @@
|
|
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
|
+
|
24
24
|
CPU.freq
|
25
25
|
Returns an integer indicating the speed (i.e. frequency in Mhz) of
|
26
26
|
the cpu.
|
@@ -30,36 +30,36 @@ CPU.load_avg
|
|
30
30
|
average.
|
31
31
|
|
32
32
|
CPU.machine
|
33
|
-
|
34
|
-
|
33
|
+
Returns the class of cpu (probably identical to the architecture).
|
34
|
+
|
35
35
|
CPU.model
|
36
36
|
Returns a string indicating the cpu model.
|
37
37
|
|
38
38
|
CPU.num_cpu
|
39
39
|
Returns an integer indicating the number of cpu's on the system.
|
40
40
|
|
41
|
-
|
41
|
+
= Error Classes
|
42
42
|
CPUError < StandardError
|
43
43
|
Raised is response to internal function errors, usually relating to an
|
44
44
|
invalid cpu number.
|
45
45
|
|
46
|
-
|
46
|
+
= Known Bugs
|
47
47
|
None known. Please post bug reports to the SourceForge home page at
|
48
48
|
http://www.rubyforge.org/projects/sysutils
|
49
49
|
|
50
|
-
|
51
|
-
(C) 2003-
|
50
|
+
= Copyright
|
51
|
+
(C) 2003-2006 Daniel J. Berger
|
52
52
|
All Rights Reserved
|
53
53
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
54
|
+
= Warranty
|
55
|
+
This package is provided "as is" and without any express or
|
56
|
+
implied warranties, including, without limitation, the implied
|
57
|
+
warranties of merchantability and fitness for a particular purpose.
|
58
|
+
|
59
|
+
= License
|
60
60
|
Ruby's
|
61
61
|
|
62
|
-
|
62
|
+
= Author
|
63
63
|
Daniel J. Berger
|
64
64
|
djberg96 at yahoo dot com
|
65
65
|
imperator/rubyhacker1 on IRC (Freenode)
|
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,31 @@ 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
|
CPUError < StandardError
|
50
50
|
Raised is response to internal function errors, usually relating to an
|
51
51
|
invalid cpu number.
|
52
52
|
|
53
|
-
|
53
|
+
= Known Bugs
|
54
54
|
No bugs known. Please log any bugs at
|
55
55
|
http://www.rubyforge.org/projects/sysutils
|
56
56
|
|
57
|
-
|
57
|
+
= Future Plans
|
58
58
|
Add cpu model and type
|
59
59
|
|
60
|
-
|
61
|
-
(C) 2003-
|
60
|
+
= Copyright
|
61
|
+
(C) 2003-2006 Daniel J. Berger
|
62
62
|
All Rights Reserved
|
63
63
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
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
68
|
|
69
|
-
|
69
|
+
= License
|
70
70
|
Ruby's
|
71
71
|
|
72
|
-
|
72
|
+
= Author
|
73
73
|
Daniel J. Berger
|
74
74
|
djberg96 at yahoo dot com
|
75
75
|
imperator/rubyhacker1 on IRC (Freenode)
|
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,30 +47,30 @@ 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
|
CPUError < StandardError
|
52
52
|
Raised is response to internal function errors, usually relating to an
|
53
53
|
invalid cpu number.
|
54
54
|
|
55
|
-
|
55
|
+
= Known Bugs
|
56
56
|
None known. Please post bug reports to the SourceForge home page at
|
57
57
|
http://www.rubyforge.org/projects/sysutils
|
58
58
|
|
59
|
-
|
59
|
+
= Future Plans
|
60
60
|
Add more information, such as what prtdiag shows.
|
61
61
|
Get the model() method to display more specific information.
|
62
62
|
|
63
|
-
|
63
|
+
= Copyright
|
64
64
|
(C) 2003-2006 Daniel J. Berger
|
65
65
|
All Rights Reserved
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
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
71
|
|
72
|
-
|
72
|
+
= License
|
73
73
|
Ruby's
|
74
74
|
|
75
|
-
|
75
|
+
= Author
|
76
76
|
Daniel J. Berger
|
data/doc/windows.txt
CHANGED
@@ -1,11 +1,11 @@
|
|
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
|
|
8
|
-
|
8
|
+
CPU.processors{ |cs|
|
9
9
|
cs.members.each{ |m|
|
10
10
|
puts "#{m}: " + cs[m].to_s
|
11
11
|
}
|
@@ -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
|
|
@@ -33,12 +33,12 @@ CPU.freq(cpu_num=0, host=localhost)
|
|
33
33
|
is raised.
|
34
34
|
|
35
35
|
CPU.load_avg(host=localhost)
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
Returns the load capacity of each processor, averaged to the last second.
|
37
|
+
Processor loading refers to the total computing burden for each
|
38
|
+
processor at one time.
|
39
39
|
|
40
|
-
|
41
|
-
|
40
|
+
Note that this attribute is actually the LoadPercentage. I may use
|
41
|
+
one of the Win32_Perf* classes in the future.
|
42
42
|
|
43
43
|
CPU.model(host=localhost)
|
44
44
|
Returns a string indicating the cpu model, e.g. Intel Pentium 4
|
@@ -47,10 +47,10 @@ CPU.num_cpu(host=localhost)
|
|
47
47
|
Returns an integer indicating the number of cpu's on the system.
|
48
48
|
|
49
49
|
CPU.processors(host=localhost){ |cpu| ... }
|
50
|
-
|
51
|
-
|
50
|
+
Returns a CPUStruct for each CPU on the system containing the following
|
51
|
+
members:
|
52
52
|
|
53
|
-
|
53
|
+
* address_width
|
54
54
|
* architecture
|
55
55
|
* availability
|
56
56
|
* caption
|
@@ -101,52 +101,52 @@ 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
|
CPUError < 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
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
110
|
+
= Notes
|
111
|
+
Some of the CPUStruct members may be nil. As far as I can tell, this
|
112
|
+
means that Windows is unable to determine the value for the attribute due
|
113
|
+
to your BIOS and/or BIOS settings. There is nothing clear in the
|
114
|
+
documentation I could find for this, however.
|
115
115
|
|
116
|
-
|
116
|
+
The 'family' attribute may contain the trademark symbol.
|
117
117
|
|
118
|
-
|
119
|
-
|
120
|
-
|
118
|
+
The 'status_info' attribute was not converted to a string because the
|
119
|
+
'status' attribute already is a string. I'm not even sure why MS has both
|
120
|
+
versions.
|
121
121
|
|
122
|
-
|
123
|
-
|
122
|
+
The 'system_name' attribute appears to be the hostname. I have no idea
|
123
|
+
why this is included as part of the CPU information, but there you go.
|
124
124
|
|
125
|
-
|
126
|
-
|
127
|
-
|
125
|
+
See http://tinyurl.com/2mros (and click on 'Win32_Processor' in the left
|
126
|
+
frame) for a list of attributes and their meaning. Link courtesy of
|
127
|
+
tinyurl.com.
|
128
128
|
|
129
|
-
|
129
|
+
= Known Bugs
|
130
130
|
No bugs known. Please log any bugs at
|
131
131
|
http://www.rubyforge.org/projects/sysutils
|
132
|
-
|
133
|
-
|
132
|
+
|
133
|
+
= Future Plans
|
134
134
|
Add more detailed CPU usage information via the
|
135
135
|
Win32_PerfFormattedData_PerfOS_Processor class.
|
136
136
|
|
137
|
-
|
138
|
-
(C) 2003-
|
137
|
+
= Copyright
|
138
|
+
(C) 2003-2006 Daniel J. Berger
|
139
139
|
All Rights Reserved
|
140
140
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
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
147
|
Ruby's
|
148
148
|
|
149
|
-
|
149
|
+
= Author
|
150
150
|
Daniel J. Berger
|
151
151
|
djberg96 at yahoo dot com
|
152
152
|
imperator/rubyhacker1 on IRC (Freenode)
|
data/lib/sys/cpu.rb
CHANGED
data/test/tc_linux.rb
CHANGED
@@ -8,7 +8,7 @@ if base == "test" || base =~ /sys-cpu/
|
|
8
8
|
require "ftools"
|
9
9
|
Dir.chdir ".." if base == "test"
|
10
10
|
Dir.mkdir("sys") unless File.exists?("sys")
|
11
|
-
File.copy("lib/
|
11
|
+
File.copy("lib/sys/linux.rb","sys/cpu.rb")
|
12
12
|
$LOAD_PATH.unshift Dir.pwd
|
13
13
|
end
|
14
14
|
|
data/test/tc_version.rb
CHANGED
@@ -6,16 +6,27 @@
|
|
6
6
|
# for the VERSION constant in every single test case.
|
7
7
|
###########################################################
|
8
8
|
base = File.basename(Dir.pwd)
|
9
|
+
|
9
10
|
if base == "test" || base =~ /sys-cpu/
|
10
11
|
require "ftools"
|
11
|
-
|
12
|
-
|
12
|
+
|
13
|
+
Dir.chdir("..") if base == "test"
|
13
14
|
Dir.mkdir("sys") unless File.exist?("sys")
|
14
15
|
|
15
|
-
|
16
|
-
|
16
|
+
case RUBY_PLATFORM
|
17
|
+
when /mswin|dos|cygwin|mingw/i
|
18
|
+
file = 'lib/sys/windows.rb'
|
19
|
+
when /linux/i
|
20
|
+
file = 'lib/sys/linux.rb'
|
21
|
+
else
|
22
|
+
require "rbconfig"
|
23
|
+
file = "cpu." << Config::CONFIG["DLEXT"]
|
24
|
+
end
|
25
|
+
|
26
|
+
if File.exist?(file)
|
27
|
+
File.copy(file, "sys/cpu.rb")
|
17
28
|
else
|
18
|
-
puts "No
|
29
|
+
puts "No '#{file}' file found. Please run extconf.rb and make first"
|
19
30
|
exit
|
20
31
|
end
|
21
32
|
|
@@ -28,6 +39,6 @@ include Sys
|
|
28
39
|
|
29
40
|
class TC_Sys_CPU_VERSION < Test::Unit::TestCase
|
30
41
|
def test_version
|
31
|
-
assert_equal('0.5.
|
42
|
+
assert_equal('0.5.5', CPU::VERSION)
|
32
43
|
end
|
33
44
|
end
|
data/test/tc_windows.rb
CHANGED
@@ -8,7 +8,7 @@ if base == "test" || base =~ /sys-cpu/
|
|
8
8
|
require "ftools" if base == "test"
|
9
9
|
Dir.chdir '..'
|
10
10
|
Dir.mkdir("sys") unless File.exists?("sys")
|
11
|
-
File.copy("lib/
|
11
|
+
File.copy("lib/sys/windows.rb","sys/cpu.rb")
|
12
12
|
$LOAD_PATH.unshift Dir.pwd
|
13
13
|
end
|
14
14
|
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: sys-cpu
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.5.
|
7
|
-
date: 2006-11-
|
6
|
+
version: 0.5.5
|
7
|
+
date: 2006-11-18 00:00:00 -07:00
|
8
8
|
summary: A Ruby interface for providing CPU information
|
9
9
|
require_paths:
|
10
10
|
- lib
|