sys-cpu 0.6.2-x86-linux → 0.6.3-x86-linux

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 CHANGED
@@ -1,4 +1,12 @@
1
- == 0.6.2 - ???
1
+ == 0.6.3 - 9-Oct-2010
2
+ * Fixed a bug in the install.rb file and refactored it a bit. Thanks go
3
+ to Di-an Jan for the spot. Note, however, that this file will eventually
4
+ be removed and/or integrated into the Linux source file.
5
+ * Fixed the example Rake task, and refactored some of the other tasks.
6
+ * Fixed and updated the CPU.architecture method on MS Windows to handle IA64
7
+ and x64 architectures.
8
+
9
+ == 0.6.2 - 1-Jan-2010
2
10
  * Fixed a bug in the cpu_freq function (which would only be noticed on
3
11
  certain platforms in cases where the CPU.freq method failed). Thanks
4
12
  go to Edho P Arief for the spot.
data/MANIFEST CHANGED
@@ -19,8 +19,8 @@
19
19
  * ext/bsd/bsd.c
20
20
  * ext/hpux/hpux.c
21
21
  * ext/sunos/sunos.c
22
- * lib/sys/linux.rb
23
- * lib/sys/windows.rb
22
+ * lib/linux/sys/cpu.rb
23
+ * lib/windows/sys/cpu.rb
24
24
  * test/test_sys_cpu.rb
25
25
  * test/test_sys_cpu_bsd.rb
26
26
  * test/test_sys_cpu_hpux.rb
data/README CHANGED
@@ -1,79 +1,76 @@
1
- == Description
1
+ = Description
2
2
  A Ruby interface for getting cpu information.
3
3
 
4
- == Installation
5
- gem install sys-cpu
6
- gem install sys-cpu --platform mswin32 # MS Windows
4
+ = Installation
5
+ gem install sys-cpu
6
+ gem install sys-cpu --platform mswin32 # MS Windows
7
7
 
8
- == Notes
9
- === All Platforms
10
- As of version 0.5.0 Ruby 1.8.0 or later is required. It may work with
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.
8
+ = Notes
9
+ == All Platforms
10
+ I do not support any Ruby 1.8.x branch after 1.8.6. It should work on those
11
+ versions of Ruby but if it breaks I'm not going to go out of my way to fix
12
+ it. I will, however, support the 1.9.x/2.x branch.
16
13
 
17
- === Solaris
18
- Currently there is no 'processors()' iterative method for multi-cpu systems.
19
- I plan to add it this in a future release.
14
+ == Solaris
15
+ Currently there is no 'processors()' iterative method for multi-cpu systems.
16
+ I plan to add it this in a future release.
20
17
 
21
- === OS X
22
- The CPU.freq method is not supported at the moment. The sysctl() approach
23
- returns a bogus, hard coded value of some sort. I suspect it's possible
24
- by using kernel modules via kldload(), but I'm not sure how yet.
18
+ == OS X
19
+ The CPU.freq method is not supported at the moment. The sysctl() approach
20
+ returns a bogus, hard coded value of some sort. I suspect it's possible
21
+ by using kernel modules via kldload(), but I'm not sure how yet.
25
22
 
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.
23
+ == Linux
24
+ This is pure Ruby. This version reads information out of /proc/cpuinfo and
25
+ /proc/loadavg, so if /proc isn't mounted it won't work.
29
26
 
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).
27
+ The key-value information in /proc/cpuinfo is stored internally (i.e. in
28
+ memory) as an array of hashes when you first 'require' this package. This
29
+ overhead is exceptionally minimal, given that your average cpuinfo file
30
+ contains less than 1k of text (and I don't store whitespace or newlines).
34
31
 
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 'rake install' (via install.rb).
32
+ The text documentation for Linux is dynamically generated during the
33
+ build process because the fields vary depending on your setup. So, don't
34
+ look at it until *after* you've installed it. You will see a doc/linux.txt
35
+ file after you run 'rake install' (via install.rb).
39
36
 
40
- === HP-UX
41
- Unlike other platforms, you can get load averages for an individual cpu in
42
- multi-cpu systems. See documentation for more details.
37
+ == HP-UX
38
+ Unlike other platforms, you can get load averages for an individual cpu in
39
+ multi-cpu systems. See documentation for more details.
43
40
 
44
- === MS Windows
45
- This is a pure Ruby implementation using the win32ole package + WMI. The C
46
- version has been scrapped.
41
+ == MS Windows
42
+ This is a pure Ruby implementation using the win32ole package + WMI. The C
43
+ version has been scrapped.
47
44
 
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.
45
+ As of version 0.5.0, the CPU.usage method has been removed in favor of the
46
+ CPU.load_avg method. This does not (currently) use a perf counter, so there
47
+ is no longer any delay. Also, the 'processors' method has been
48
+ added and the 'supported' method has been dropped. See the documentation
49
+ for other changes.
53
50
 
54
- == Acknowledgements
55
- Thanks go to the MPlayer team for some source code that helped me on
56
- certain versions of FreeBSD.
51
+ = Acknowledgements
52
+ Thanks go to the MPlayer team for some source code that helped me on
53
+ certain versions of FreeBSD.
57
54
 
58
- == Known Bugs
59
- None that I'm aware of. Please report bugs on the project page at
60
- http://www.rubyforge.org/projects/sysutils.
55
+ = Known Bugs
56
+ None that I'm aware of. Please report bugs on the project page at
57
+ http://www.rubyforge.org/projects/sysutils.
61
58
 
62
- == Future Plans
63
- Add iterative CPU.processors method.
64
- Make CPU.freq work on OS X.
65
- Add more information in general, such as what 'prtdiag' shows.
59
+ = Future Plans
60
+ Add iterative CPU.processors method.
61
+ Make CPU.freq work on OS X.
62
+ Add more information in general, such as what 'prtdiag' shows.
66
63
 
67
- == License
68
- Artistic 2.0
64
+ = License
65
+ Artistic 2.0
69
66
 
70
- == Copyright
71
- (C) 2003-2009 Daniel J. Berger, All Rights Reserved
67
+ = Copyright
68
+ (C) 2003-2009 Daniel J. Berger, All Rights Reserved
72
69
 
73
- == Warranty
74
- This package is provided "as is" and without any express or
75
- implied warranties, including, without limitation, the implied
76
- warranties of merchantability and fitness for a particular purpose.
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.
77
74
 
78
- == Author
79
- Daniel J. Berger
75
+ = Author
76
+ Daniel J. Berger
data/Rakefile CHANGED
@@ -3,50 +3,50 @@ require 'rake/clean'
3
3
  require 'rake/testtask'
4
4
  require 'rbconfig'
5
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)
6
+ namespace 'C' do
7
+ desc "Clean the build files for the sys-cpu source for UNIX systems"
8
+ task :clean do
9
+ Dir["*.gem"].each{ |f| File.delete(f) }
10
+
11
+ rm_rf('sys') if File.exists?('sys')
12
+ rm_rf('lib/sys/cpu.rb') if File.exists?('lib/sys/cpu.rb')
13
+
14
+ Dir.chdir('ext') do
15
+ unless Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|linux/i
16
+ rm_rf('conftest.dSYM') if File.exists?('conftest.dSYM') # OS X
17
+ rm_rf('sys') if File.exists?('sys')
18
+ rm_rf('cpu.c') if File.exists?('cpu.c')
19
+ build_file = 'cpu.' + Config::CONFIG['DLEXT']
20
+ sh 'make distclean' if File.exists?(build_file)
21
+ end
16
22
  end
17
23
  end
18
- end
19
24
 
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')
25
+ desc "Build the sys-cpu library on UNIX systems"
26
+ task :build => [:clean] do
27
+ Dir.chdir('ext') do
28
+ unless Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|linux/i
29
+ ruby 'extconf.rb'
30
+ sh 'make'
31
+ build_file = 'cpu.' + Config::CONFIG['DLEXT']
32
+ Dir.mkdir('sys') unless File.exists?('sys')
33
+ FileUtils.cp(build_file, 'sys')
34
+ end
29
35
  end
30
36
  end
31
37
  end
32
38
 
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'
39
+ namespace 'gem' do
40
+ desc "Create the sys-cpu gem"
41
+ task :create => ['C:clean'] do
42
+ spec = eval(IO.read('sys-cpu.gemspec'))
43
+ Gem::Builder.new(spec).build
43
44
  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
45
+
46
+ desc "Install the sys-cpu gem"
47
+ task :install => [:create] do
48
+ file = Dir["*.gem"].first
49
+ sh "gem install #{file}"
50
50
  end
51
51
  end
52
52
 
@@ -55,26 +55,26 @@ task :example => [:build] do
55
55
  Dir.mkdir('sys') unless File.exists?('sys')
56
56
  if Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|linux/i
57
57
  if Config::CONFIG['host_os'].match('linux')
58
- FileUtils.cp('lib/sys/linux.rb', 'sys/cpu.rb')
58
+ cp 'lib/linux/sys/cpu.rb', 'sys'
59
59
  else
60
- FileUtils.cp('lib/sys/windows.rb', 'sys/cpu.rb')
60
+ cp 'lib/windows/sys/cpu.rb', 'sys'
61
61
  end
62
62
  else
63
63
  build_file = 'ext/cpu.' + Config::CONFIG['DLEXT']
64
- FileUtils.cp(build_file, 'sys')
64
+ cp build_file, 'sys'
65
65
  end
66
66
 
67
67
  case Config::CONFIG['host_os']
68
68
  when /bsd|darwin|mach|osx/i
69
- file = 'examples/test_cpu_bsd.rb'
69
+ file = 'examples/example_sys_cpu_bsd.rb'
70
70
  when /hpux/i
71
- file = 'examples/test_cpu_hpux.rb'
71
+ file = 'examples/example_sys_cpu_hpux.rb'
72
72
  when /linux/i
73
- file = 'examples/test_cpu_linux.rb'
73
+ file = 'examples/example_sys_cpu_linux.rb'
74
74
  when /sunos|solaris/i
75
- file = 'examples/test_cpu_sunos.rb'
75
+ file = 'examples/example_sys_cpu_sunos.rb'
76
76
  when /mswin|win32|cygwin|mingw|dos/i
77
- file = 'examples/test_cpu_windows.rb'
77
+ file = 'examples/example_sys_cpu_windows.rb'
78
78
  end
79
79
  sh "ruby -I. -Iext -Ilib #{file}"
80
80
  end
@@ -85,7 +85,7 @@ Rake::TestTask.new do |t|
85
85
  elsif Config::CONFIG['host_os'] =~ /linux/i
86
86
  t.libs << 'lib/linux'
87
87
  else
88
- task :test => :build
88
+ task :test => 'C:build'
89
89
  t.libs << 'ext'
90
90
  t.libs.delete('lib')
91
91
  end
@@ -93,3 +93,6 @@ Rake::TestTask.new do |t|
93
93
  t.libs << 'test'
94
94
  t.test_files = FileList['test/test_sys_cpu.rb']
95
95
  end
96
+
97
+ task :default => :test
98
+ task :clean => 'C:clean'
@@ -1,25 +1,24 @@
1
1
  #######################################################################
2
2
  # example_sys_cpu_linux.rb
3
3
  #
4
- # Sample cript for general futzing. You can run this code via the
4
+ # Sample cript for general futzing. You should run this code via the
5
5
  # 'rake example' task.
6
6
  #
7
7
  # Modify as you see fit.
8
8
  #######################################################################
9
9
  require "sys/cpu"
10
10
  require "pp"
11
- include Sys
12
11
 
13
- puts "VERSION: " + CPU::VERSION
12
+ puts "VERSION: " + Sys::CPU::VERSION
14
13
  puts "========"
15
14
 
16
- puts "Load Average: " + CPU.load_avg.join(", ")
15
+ puts "Load Average: " + Sys::CPU.load_avg.join(", ")
17
16
 
18
17
  puts "Processor Info:"
19
18
  puts "==============="
20
- pp CPU.processors
19
+ pp Sys::CPU.processors
21
20
 
22
21
  puts "CPU STATS:"
23
22
  puts "=========:"
24
23
 
25
- pp CPU.cpu_stats
24
+ pp Sys::CPU.cpu_stats
data/ext/bsd/bsd.c CHANGED
@@ -281,7 +281,7 @@ void Init_cpu()
281
281
  */
282
282
  cCPUError = rb_define_class_under(cCPU, "Error", rb_eStandardError);
283
283
 
284
- /* 0.6.2: The version of the sys-cpu library */
284
+ /* 0.6.3: The version of the sys-cpu library */
285
285
  rb_define_const(cCPU, "VERSION", rb_str_new2(SYS_CPU_VERSION));
286
286
 
287
287
  /* Class Methods */
data/ext/extconf.rb CHANGED
@@ -1,9 +1,10 @@
1
- require "mkmf"
2
- require "fileutils"
1
+ require 'mkmf'
2
+ require 'fileutils'
3
+ require 'rbconfig'
3
4
 
4
5
  File.delete('cpu.c') if File.exists?('cpu.c')
5
6
 
6
- case RUBY_PLATFORM
7
+ case Config::CONFIG['host_os']
7
8
  when /hpux/i
8
9
  FileUtils.cp("hpux/hpux.c", "cpu.c")
9
10
  when /sunos|solaris/i
@@ -17,7 +18,7 @@ case RUBY_PLATFORM
17
18
  have_library("kvm")
18
19
  have_header("kvm.h")
19
20
  when /linux|dos|windows|win32|mingw|cygwin/i
20
- STDERR.puts "Run 'ruby install.rb' instead for this platform"
21
+ STDERR.puts "Run 'rake gem:install' instead for this platform"
21
22
  else
22
23
  STDERR.puts "This platform is not currently supported. Exiting..."
23
24
  end
data/ext/hpux/hpux.c CHANGED
@@ -203,7 +203,7 @@ void Init_cpu()
203
203
  */
204
204
  cCPUError = rb_define_class_under(cCPU, "Error", rb_eStandardError);
205
205
 
206
- /* 0.6.2: The version of the sys-cpu library */
206
+ /* 0.6.3: The version of the sys-cpu library */
207
207
  rb_define_const(cCPU, "VERSION", rb_str_new2(SYS_CPU_VERSION));
208
208
 
209
209
  /* Class Methods */
data/ext/sunos/sunos.c CHANGED
@@ -262,7 +262,7 @@ void Init_cpu()
262
262
  */
263
263
  cCPUError = rb_define_class_under(cCPU, "Error", rb_eStandardError);
264
264
 
265
- /* 0.6.2: The version of the sys-cpu library */
265
+ /* 0.6.3: The version of the sys-cpu library */
266
266
  rb_define_const(cCPU, "VERSION", rb_str_new2(SYS_CPU_VERSION));
267
267
 
268
268
  /* Class Methods */
data/ext/version.h CHANGED
@@ -1,2 +1,2 @@
1
1
  /* version.h - one version to rule them all */
2
- #define SYS_CPU_VERSION "0.6.2"
2
+ #define SYS_CPU_VERSION "0.6.3"
data/install.rb CHANGED
@@ -30,42 +30,43 @@ end
30
30
  # has already been written at some point previously and skip it.
31
31
  #######################################################################
32
32
  if CONFIG['host_os'] =~ /linux/
33
- cpu_file = "/proc/cpuinfo"
34
- text_file = "doc/linux.txt"
35
- rb_file = "lib/linux/sys/cpu.rb"
33
+ cpu_file = "/proc/cpuinfo"
34
+ text_file = "doc/linux.txt"
35
+ rb_file = "lib/linux/sys/cpu.rb"
36
36
 
37
- if File.size(text_file) > 1400
38
- puts "You appear to have already created the documentation."
39
- puts "Skipping..."
40
- else
41
- puts "Dynamically generating documentation..."
42
- fh = File.open(text_file,"a+")
37
+ if File.size(text_file) > 1400
38
+ puts "You appear to have already created the documentation."
39
+ puts "Skipping..."
40
+ else
41
+ puts "Dynamically generating documentation..."
42
+ fh = File.open(text_file, 'a')
43
+
44
+ IO.foreach(cpu_file){ |line|
45
+ next if line =~ /^$/
46
+ k,v = line.split(":")
47
+
48
+ v = v.strip.chomp
49
+ k = k.strip.gsub(/\s+/, '_').downcase
50
+
51
+ k += "?" if v =~ /yes|no/i
43
52
 
44
- IO.foreach(cpu_file){ |line|
45
- next if line =~ /^$/
46
- k,v = line.split(":")
47
- v.strip!.chomp!
48
- k.strip!.gsub!(/\s+/,"_")
49
- k.downcase!
50
- if v =~ /yes|no/i
51
- k += "?"
52
- end
53
- fh.puts("CPU.#{k}")
54
- if v =~ /yes|no/i
55
- k.chop!
56
- msg = " Returns true if a " + k.gsub(/_/," ") + "exists on"
57
- msg << " this system"
58
- fh.puts(msg)
59
- else
60
- fh.puts(" Returns the " + k.gsub(/_/," "))
61
- end
62
- fh.puts # Add a blank line
63
- }
53
+ fh.puts("CPU.#{k}")
64
54
 
65
- fh.puts(doc)
66
- fh.close
67
- puts "Documentation creation complete"
68
- end
55
+ if v =~ /yes|no/i
56
+ k.chop!
57
+ msg = " Returns true if a " + k.gsub(/_/," ") + "exists on"
58
+ msg << " this system"
59
+ fh.puts(msg)
60
+ else
61
+ fh.puts(" Returns the " + k.gsub(/_/," "))
62
+ end
63
+
64
+ fh.puts # Add a blank line
65
+ }
66
+
67
+ fh.close
68
+ puts "Documentation creation complete"
69
+ end
69
70
  end
70
71
 
71
72
  # Create the 'sys' toplevel directory if it doesn't already exist