sys-cpu 0.6.3 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,11 @@
1
+ == 0.6.4 - 27-Sep-2011
2
+ * The CPU.freq method now works on OSX.
3
+ * The CPU.model method on OSX has been altered. Previously it
4
+ returned the machine model. However, the information is limited.
5
+ * Fixed a couple unused variable warnings for the BSD/OSX code.
6
+ * The Linux and Windows gems now have a 'universal' architecture.
7
+ * Refactored the clean task in the Rakefile.
8
+
1
9
  == 0.6.3 - 9-Oct-2010
2
10
  * Fixed a bug in the install.rb file and refactored it a bit. Thanks go
3
11
  to Di-an Jan for the spot. Note, however, that this file will eventually
data/README CHANGED
@@ -3,22 +3,20 @@
3
3
 
4
4
  = Installation
5
5
  gem install sys-cpu
6
- gem install sys-cpu --platform mswin32 # MS Windows
7
6
 
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.
7
+ If that doesn't work try one of these:
8
+
9
+ gem install sys-cpu --platform linux # Linux
10
+ gem install sys-cpu --platform mingw32 # MS Windows
13
11
 
12
+ = Notes
14
13
  == Solaris
15
14
  Currently there is no 'processors()' iterative method for multi-cpu systems.
16
15
  I plan to add it this in a future release.
17
16
 
18
17
  == 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.
18
+ The CPU.model method returns very limited information. I do not yet know
19
+ how to get more detailed information.
22
20
 
23
21
  == Linux
24
22
  This is pure Ruby. This version reads information out of /proc/cpuinfo and
@@ -58,14 +56,13 @@
58
56
 
59
57
  = Future Plans
60
58
  Add iterative CPU.processors method.
61
- Make CPU.freq work on OS X.
62
59
  Add more information in general, such as what 'prtdiag' shows.
63
60
 
64
61
  = License
65
62
  Artistic 2.0
66
63
 
67
64
  = Copyright
68
- (C) 2003-2009 Daniel J. Berger, All Rights Reserved
65
+ (C) 2003-2011 Daniel J. Berger, All Rights Reserved
69
66
 
70
67
  = Warranty
71
68
  This package is provided "as is" and without any express or
data/Rakefile CHANGED
@@ -2,43 +2,35 @@ require 'rake'
2
2
  require 'rake/clean'
3
3
  require 'rake/testtask'
4
4
  require 'rbconfig'
5
+ include Config
5
6
 
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')
7
+ CLEAN.include(
8
+ '**/*.gem', # Gem files
9
+ '**/*.rbc', # Rubinius
10
+ 'ext/cpu.c', # Temporary file
11
+ '**/*.o', # C object file
12
+ '**/*.log', # Ruby extension build log
13
+ '**/Makefile', # C Makefile
14
+ '**/conftest.dSYM', # OS X build directory
15
+ "**/*.#{CONFIG['DLEXT']}" # C shared object
16
+ )
13
17
 
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
22
- end
23
- end
24
-
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
18
+ desc "Build the sys-cpu library on UNIX systems"
19
+ task :build => [:clean] do
20
+ Dir.chdir('ext') do
21
+ unless CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|windows|linux/i
22
+ ruby 'extconf.rb'
23
+ sh 'make'
24
+ build_file = 'cpu.' + CONFIG['DLEXT']
25
+ Dir.mkdir('sys') unless File.exists?('sys')
26
+ FileUtils.cp(build_file, 'sys')
35
27
  end
36
28
  end
37
29
  end
38
30
 
39
31
  namespace 'gem' do
40
32
  desc "Create the sys-cpu gem"
41
- task :create => ['C:clean'] do
33
+ task :create => [:clean] do
42
34
  spec = eval(IO.read('sys-cpu.gemspec'))
43
35
  Gem::Builder.new(spec).build
44
36
  end
@@ -53,18 +45,18 @@ end
53
45
  desc "Run the example program"
54
46
  task :example => [:build] do
55
47
  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')
48
+ if CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|windows|linux/i
49
+ if CONFIG['host_os'].match('linux')
58
50
  cp 'lib/linux/sys/cpu.rb', 'sys'
59
51
  else
60
52
  cp 'lib/windows/sys/cpu.rb', 'sys'
61
53
  end
62
54
  else
63
- build_file = 'ext/cpu.' + Config::CONFIG['DLEXT']
55
+ build_file = 'ext/cpu.' + CONFIG['DLEXT']
64
56
  cp build_file, 'sys'
65
57
  end
66
58
 
67
- case Config::CONFIG['host_os']
59
+ case CONFIG['host_os']
68
60
  when /bsd|darwin|mach|osx/i
69
61
  file = 'examples/example_sys_cpu_bsd.rb'
70
62
  when /hpux/i
@@ -80,12 +72,12 @@ task :example => [:build] do
80
72
  end
81
73
 
82
74
  Rake::TestTask.new do |t|
83
- if Config::CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|windows/i
75
+ if CONFIG['host_os'] =~ /mswin|win32|mingw|cygwin|dos|windows/i
84
76
  t.libs << 'lib/windows'
85
- elsif Config::CONFIG['host_os'] =~ /linux/i
77
+ elsif CONFIG['host_os'] =~ /linux/i
86
78
  t.libs << 'lib/linux'
87
79
  else
88
- task :test => 'C:build'
80
+ task :test => :build
89
81
  t.libs << 'ext'
90
82
  t.libs.delete('lib')
91
83
  end
@@ -95,4 +87,3 @@ Rake::TestTask.new do |t|
95
87
  end
96
88
 
97
89
  task :default => :test
98
- task :clean => 'C:clean'
data/ext/bsd/bsd.c CHANGED
@@ -30,6 +30,10 @@
30
30
  #include <unistd.h>
31
31
  #endif
32
32
 
33
+ #if defined(__MACH__) && defined(__APPLE__)
34
+ #include <mach/machine.h>
35
+ #endif
36
+
33
37
  VALUE cCPUError;
34
38
 
35
39
  /****************************************************************************
@@ -53,45 +57,45 @@ static int64_t rdtsc(void){
53
57
  * average.
54
58
  */
55
59
  static VALUE cpu_load_avg(VALUE klass){
56
- double avgs[3];
57
- int n, max = 3;
60
+ int n;
58
61
  VALUE v_num_array = rb_ary_new();
59
62
 
60
63
  #ifdef HAVE_KVM_H
61
- kvm_t* k;
64
+ int max = 3;
65
+ kvm_t* k;
66
+ double avgs[3];
62
67
 
63
- k = malloc(sizeof(kvm_t*));
68
+ k = malloc(sizeof(kvm_t*));
64
69
 
65
- if(!kvm_getloadavg(k, avgs, max)){
66
- free(k);
67
- rb_raise(cCPUError, "error calling kvm_getloadavg(): %s", strerror(errno));
68
- }
70
+ if(!kvm_getloadavg(k, avgs, max)){
71
+ free(k);
72
+ rb_raise(cCPUError, "error calling kvm_getloadavg(): %s", strerror(errno));
73
+ }
69
74
 
70
- for(n = 0; n < 3; n++)
71
- rb_ary_push(v_num_array, rb_float_new(avgs[n]));
75
+ for(n = 0; n < 3; n++)
76
+ rb_ary_push(v_num_array, rb_float_new(avgs[n]));
72
77
 
73
- free(k);
78
+ free(k);
74
79
  #else
75
80
  struct loadavg k;
76
81
  size_t len = sizeof(k);
77
82
 
78
83
  #ifdef HAVE_SYSCTLBYNAME
79
- if(sysctlbyname("vm.loadavg", &k, &len, NULL, 0))
80
- rb_raise(cCPUError, "error calling sysctlbyname(): %s", strerror(errno));
84
+ if(sysctlbyname("vm.loadavg", &k, &len, NULL, 0))
85
+ rb_raise(cCPUError, "error calling sysctlbyname(): %s", strerror(errno));
81
86
  #else
82
- int mib[2];
83
- mib[0] = CTL_HW;
84
- mib[1] = VM_LOADAVG;
87
+ int mib[2];
88
+ mib[0] = CTL_HW;
89
+ mib[1] = VM_LOADAVG;
85
90
 
86
- if(sysctl(mib, 2, &k, &len, NULL, 0))
87
- rb_raise(cCPUError, "error calling sysctl(): %s", strerror(errno));
91
+ if(sysctl(mib, 2, &k, &len, NULL, 0))
92
+ rb_raise(cCPUError, "error calling sysctl(): %s", strerror(errno));
88
93
  #endif
89
-
90
- for(n = 0; n < 3; n++)
91
- rb_ary_push(v_num_array, rb_float_new(k.ldavg[n] / (float)k.fscale));
94
+ for(n = 0; n < 3; n++)
95
+ rb_ary_push(v_num_array, rb_float_new(k.ldavg[n] / (float)k.fscale));
92
96
  #endif
93
97
 
94
- return v_num_array;
98
+ return v_num_array;
95
99
  }
96
100
 
97
101
  /*
@@ -126,24 +130,54 @@ static VALUE cpu_num(VALUE klass){
126
130
  * CPU.model
127
131
  *
128
132
  * Returns a string indicating the cpu model.
133
+ *--
134
+ * On OSX I use the hw.cputype instead of hw.model because OSX returns the
135
+ * machine model instead of the cpu model for some reason. Initial attempts
136
+ * to add the cpusubtype as well were unreliable.
129
137
  */
130
138
  static VALUE cpu_model(VALUE klass){
131
- char model[64];
132
- size_t len = sizeof(model);
139
+ char model[64];
140
+ size_t len = sizeof(model);
133
141
 
134
142
  #ifdef HAVE_SYSCTLBYNAME
135
- if(sysctlbyname("hw.model", &model, &len, NULL, 0))
136
- rb_raise(cCPUError, "error calling sysctlbyname(): %s", strerror(errno));
143
+ #if defined(__MACH__) && defined(__APPLE__)
144
+ int cpu_type;
145
+ len = sizeof(cpu_type);
146
+
147
+ if(sysctlbyname("hw.cputype", &cpu_type, &len, NULL, 0))
137
148
  #else
138
- int mib[2];
139
- mib[0] = CTL_HW;
140
- mib[1] = HW_MODEL;
149
+ if(sysctlbyname("hw.model", &model, &len, NULL, 0))
150
+ #endif
151
+ rb_raise(cCPUError, "error calling sysctlbyname(): %s", strerror(errno));
152
+ #else
153
+ int mib[2];
141
154
 
142
- if(sysctl(mib, 2, &model, &len, NULL, 0))
143
- rb_raise(cCPUError, "error calling sysctl(): %s", strerror(errno));
155
+ mib[0] = CTL_HW;
156
+ mib[1] = HW_MODEL;
157
+
158
+ if(sysctl(mib, 2, &model, &len, NULL, 0))
159
+ rb_raise(cCPUError, "error calling sysctl(): %s", strerror(errno));
160
+ #endif
161
+
162
+ #if defined(__MACH__) && defined(__APPLE__)
163
+ // Intel and PowerPC only.
164
+ switch(cpu_type){
165
+ case CPU_TYPE_X86:
166
+ case CPU_TYPE_X86_64:
167
+ strcpy(model, "Intel");
168
+ break;
169
+ case CPU_TYPE_POWERPC:
170
+ case CPU_TYPE_POWERPC64:
171
+ strcpy(model, "PowerPC");
172
+ break;
173
+ default:
174
+ strcpy(model, "Unknown");
175
+ }
176
+
177
+ // TODO: Add the subtype.
144
178
  #endif
145
179
 
146
- return rb_str_new2(model);
180
+ return rb_str_new2(model);
147
181
  }
148
182
 
149
183
  /*
@@ -218,13 +252,6 @@ static VALUE cpu_machine(VALUE klass){
218
252
  * CPU.freq
219
253
  *
220
254
  * Returns an integer indicating the speed (i.e. frequency in Mhz) of the cpu.
221
- *
222
- * Not supported on OS X.
223
- *--
224
- * Not supported on OS X currently. The sysctl() approach returns a bogus
225
- * hard-coded value.
226
- *
227
- * TODO: Fix for OS X.
228
255
  */
229
256
  static VALUE cpu_freq(VALUE klass){
230
257
  int mhz;
@@ -250,8 +277,18 @@ static VALUE cpu_freq(VALUE klass){
250
277
  #else
251
278
  size_t len = sizeof(mhz);
252
279
  #ifdef HAVE_SYSCTLBYNAME
280
+ #if defined(__MACH__) && defined(__APPLE__)
281
+ size_t freq;
282
+ len = sizeof(freq);
283
+
284
+ if(sysctlbyname("hw.cpufrequency", &freq, &len, 0, 0))
285
+ rb_raise(cCPUError, "error calling sysctlbyname(): %s", strerror(errno));
286
+
287
+ mhz = freq / 1000000;
288
+ #else
253
289
  if(sysctlbyname("hw.clockrate", &mhz, &len, 0, 0))
254
290
  rb_raise(cCPUError, "error calling sysctlbyname(): %s", strerror(errno));
291
+ #endif
255
292
  #else
256
293
  int mib[2];
257
294
 
@@ -281,7 +318,7 @@ void Init_cpu()
281
318
  */
282
319
  cCPUError = rb_define_class_under(cCPU, "Error", rb_eStandardError);
283
320
 
284
- /* 0.6.3: The version of the sys-cpu library */
321
+ /* 0.6.4: The version of the sys-cpu library */
285
322
  rb_define_const(cCPU, "VERSION", rb_str_new2(SYS_CPU_VERSION));
286
323
 
287
324
  /* Class Methods */
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.3: The version of the sys-cpu library */
206
+ /* 0.6.4: 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.3: The version of the sys-cpu library */
265
+ /* 0.6.4: 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.3"
2
+ #define SYS_CPU_VERSION "0.6.4"
data/lib/linux/sys/cpu.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  module Sys
5
5
 
6
6
  # :stopdoc:
7
-
7
+
8
8
  cpu_file = "/proc/cpuinfo"
9
9
  cpu_hash = {}
10
10
  $cpu_array = []
@@ -24,7 +24,7 @@ module Sys
24
24
  $cpu_array.push(cpu_hash.dup)
25
25
  cpu_hash.clear
26
26
  end
27
-
27
+
28
28
  # Turn yes/no attributes into booleans
29
29
  if val == 'yes'
30
30
  val = true
@@ -42,7 +42,7 @@ module Sys
42
42
  class CPU
43
43
 
44
44
  # The version of the sys-cpu library.
45
- VERSION = '0.6.3'
45
+ VERSION = '0.6.4'
46
46
 
47
47
  # :stopdoc:
48
48
 
@@ -105,7 +105,7 @@ module Sys
105
105
  lines.each_with_index{ |line, i|
106
106
  array = line.split
107
107
  break unless array[0] =~ /cpu/ # 'cpu' entries always on top
108
-
108
+
109
109
  # Some machines list a 'cpu' and a 'cpu0'. In this case only
110
110
  # return values for the numbered cpu entry.
111
111
  if lines[i].split[0] == "cpu" && lines[i+1].split[0] =~ /cpu\d/
@@ -9,7 +9,7 @@ module Sys
9
9
  class Error < StandardError; end
10
10
 
11
11
  # The version of the sys-cpu library
12
- VERSION = '0.6.3'
12
+ VERSION = '0.6.4'
13
13
 
14
14
  private
15
15
 
@@ -63,17 +63,17 @@ module Sys
63
63
  version
64
64
  voltage_caps
65
65
  /
66
-
66
+
67
67
  # The struct returned by the CPU.processors method
68
68
  CPUStruct = Struct.new("CPUStruct", *fields) # :nodoc:
69
69
 
70
70
  public
71
-
71
+
72
72
  # Returns the +host+ CPU's architecture, or nil if it cannot be
73
73
  # determined.
74
74
  #
75
75
  def self.architecture(host=Socket.gethostname)
76
- cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu0'"
76
+ cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu0'"
77
77
  begin
78
78
  wmi = WIN32OLE.connect(cs)
79
79
  rescue WIN32OLERuntimeError => e
@@ -82,14 +82,14 @@ module Sys
82
82
  self.get_cpu_arch(wmi.Architecture)
83
83
  end
84
84
  end
85
-
85
+
86
86
  # Returns an integer indicating the speed (i.e. frequency in Mhz) of
87
87
  # +cpu_num+ on +host+, or the localhost if no +host+ is specified.
88
88
  # If +cpu_num+ +1 is greater than the number of cpu's on your system
89
89
  # or this call fails for any other reason, a Error is raised.
90
90
  #
91
91
  def self.freq(cpu_num = 0, host = Socket.gethostname)
92
- cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu#{cpu_num}'"
92
+ cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu#{cpu_num}'"
93
93
  begin
94
94
  wmi = WIN32OLE.connect(cs)
95
95
  rescue WIN32OLERuntimeError => e
@@ -98,7 +98,7 @@ module Sys
98
98
  return wmi.CurrentClockSpeed
99
99
  end
100
100
  end
101
-
101
+
102
102
  # Returns the load capacity for +cpu_num+ on +host+, or the localhost
103
103
  # if no host is specified, averaged to the last second. Processor
104
104
  # loading refers to the total computing burden for each processor at
@@ -108,20 +108,20 @@ module Sys
108
108
  # one of the Win32_Perf* classes in the future.
109
109
  #
110
110
  def self.load_avg(cpu_num = 0, host = Socket.gethostname)
111
- cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu#{cpu_num}'"
111
+ cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu#{cpu_num}'"
112
112
  begin
113
113
  wmi = WIN32OLE.connect(cs)
114
114
  rescue WIN32OLERuntimeError => e
115
115
  raise Error, e
116
116
  else
117
117
  return wmi.LoadPercentage
118
- end
118
+ end
119
119
  end
120
-
120
+
121
121
  # Returns a string indicating the cpu model, e.g. Intel Pentium 4.
122
122
  #
123
123
  def self.model(host = Socket.gethostname)
124
- cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu0'"
124
+ cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu0'"
125
125
  begin
126
126
  wmi = WIN32OLE.connect(cs)
127
127
  rescue WIN32OLERuntimeError => e
@@ -130,7 +130,7 @@ module Sys
130
130
  return wmi.Name
131
131
  end
132
132
  end
133
-
133
+
134
134
  # Returns an integer indicating the number of cpu's on the system.
135
135
  #--
136
136
  # This (oddly) requires a different class.
@@ -145,7 +145,7 @@ module Sys
145
145
  return wmi.NumberOfProcessors
146
146
  end
147
147
  end
148
-
148
+
149
149
  # Returns a CPUStruct for each CPU on +host+, or the localhost if no
150
150
  # +host+ is specified. A CPUStruct contains the following members:
151
151
  #
@@ -250,13 +250,13 @@ module Sys
250
250
  self.get_voltage_caps(cpu.VoltageCaps)
251
251
  )
252
252
  }
253
- end
253
+ end
254
254
  end
255
255
 
256
256
  # Returns a string indicating the type of processor, e.g. GenuineIntel.
257
257
  #
258
258
  def self.type(host = Socket.gethostname)
259
- cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu0'"
259
+ cs = BASE_CS + "//#{host}/root/cimv2:Win32_Processor='cpu0'"
260
260
  begin
261
261
  wmi = WIN32OLE.connect(cs)
262
262
  rescue WIN32OLERuntimeError => e
@@ -265,9 +265,9 @@ module Sys
265
265
  return wmi.Manufacturer
266
266
  end
267
267
  end
268
-
268
+
269
269
  private
270
-
270
+
271
271
  # Convert the ConfigManagerErrorCode number to its corresponding string
272
272
  # Note that this value returns nil on my system.
273
273
  #
@@ -391,7 +391,7 @@ module Sys
391
391
  return nil
392
392
  end
393
393
  end
394
-
394
+
395
395
  # Convert an cpu architecture number to a string
396
396
  def self.get_cpu_arch(num)
397
397
  case num
@@ -411,7 +411,7 @@ module Sys
411
411
  return nil
412
412
  end
413
413
  end
414
-
414
+
415
415
  # convert an Availability number into a string
416
416
  def self.get_availability(num)
417
417
  case num
@@ -459,9 +459,9 @@ module Sys
459
459
  return "Quiesced"
460
460
  else
461
461
  return nil
462
- end
462
+ end
463
463
  end
464
-
464
+
465
465
  # convert CpuStatus to a string form. Note that values 5 and 6 are
466
466
  # skipped because they're reserved.
467
467
  def self.get_status(num)
@@ -482,7 +482,7 @@ module Sys
482
482
  return nil
483
483
  end
484
484
  end
485
-
485
+
486
486
  # Convert a family number into the equivalent string
487
487
  def self.get_family(num)
488
488
  case num
@@ -696,7 +696,7 @@ module Sys
696
696
  return nil
697
697
  end
698
698
  end
699
-
699
+
700
700
  # Convert power management capabilities number to its equivalent string
701
701
  def self.get_pmc(num)
702
702
  case num
@@ -720,7 +720,7 @@ module Sys
720
720
  return nil
721
721
  end
722
722
  end
723
-
723
+
724
724
  # Convert a processor type into its equivalent string
725
725
  def self.get_processor_type(num)
726
726
  case num
@@ -740,7 +740,7 @@ module Sys
740
740
  return nil
741
741
  end
742
742
  end
743
-
743
+
744
744
  # Convert an upgrade method into its equivalent string
745
745
  def self.get_upgrade_method(num)
746
746
  case num
@@ -772,7 +772,7 @@ module Sys
772
772
  return nil
773
773
  end
774
774
  end
775
-
775
+
776
776
  # Convert return values to voltage cap values (floats)
777
777
  def self.get_voltage_caps(num)
778
778
  case num
data/sys-cpu.gemspec CHANGED
@@ -2,20 +2,19 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'sys-cpu'
5
- spec.version = '0.6.3'
5
+ spec.version = '0.6.4'
6
6
  spec.author = 'Daniel J. Berger'
7
7
  spec.email = 'djberg96 at nospam at gmail dot com'
8
8
  spec.homepage = 'http://www.rubyforge.org/projects/sysutils'
9
9
  spec.platform = Gem::Platform::RUBY
10
10
  spec.summary = 'A Ruby interface for providing CPU information'
11
- spec.has_rdoc = true
12
11
  spec.test_file = 'test/test_sys_cpu.rb'
13
12
  spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
14
13
 
15
14
  spec.rubyforge_project = 'sysutils'
16
15
  spec.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST']
17
16
 
18
- spec.add_development_dependency('test-unit', '>= 2.0.3')
17
+ spec.add_development_dependency('test-unit', '>= 2.1.2')
19
18
 
20
19
  spec.description = <<-EOF
21
20
  The sys-cpu library provides an interface for gathering information
@@ -25,11 +24,11 @@ Gem::Specification.new do |spec|
25
24
 
26
25
  case Config::CONFIG['host_os']
27
26
  when /hpux/i
28
- spec.extra_rdoc_files += ['ext/hpux/hpux.c']
27
+ spec.extra_rdoc_files += ['ext/hpux/hpux.c']
29
28
  when /sunos|solaris/i
30
- spec.extra_rdoc_files += ['ext/sunos/sunos.c']
29
+ spec.extra_rdoc_files += ['ext/sunos/sunos.c']
31
30
  when /bsd|darwin|mach|osx/i
32
- spec.extra_rdoc_files += ['ext/bsd/bsd.c']
31
+ spec.extra_rdoc_files += ['ext/bsd/bsd.c']
33
32
  end
34
33
 
35
34
  case Config::CONFIG['host_os']
@@ -37,10 +36,14 @@ Gem::Specification.new do |spec|
37
36
  spec.require_paths = ['lib', 'lib/windows']
38
37
  spec.extra_rdoc_files << 'lib/windows/sys/cpu.rb'
39
38
  spec.platform = Gem::Platform::CURRENT
39
+ spec.platform.cpu = 'universal'
40
+ spec.platform.version = nil
41
+ spec.original_platform = spec.platform
40
42
  when /linux/i
41
43
  spec.require_paths = ['lib', 'lib/linux']
42
44
  spec.extra_rdoc_files << 'lib/linux/sys/cpu.rb'
43
- spec.platform = Gem::Platform::CURRENT
45
+ spec.platform = Gem::Platform.new('universal-linux')
46
+ spec.original_platform = spec.platform
44
47
  else
45
48
  spec.extensions = ['ext/extconf.rb']
46
49
  end
@@ -24,7 +24,6 @@ class TC_Sys_CPU_BSD < Test::Unit::TestCase
24
24
  end
25
25
 
26
26
  def test_cpu_freq
27
- omit_if(Config::CONFIG['host_os'] =~ /darwin/i, 'CPU.freq test skipped on OS X')
28
27
  assert_respond_to(CPU, :freq)
29
28
  assert_nothing_raised{ CPU.freq }
30
29
  assert_kind_of(Integer, CPU.freq)
@@ -13,6 +13,6 @@ require 'test/unit'
13
13
 
14
14
  class TC_Sys_CPU_VERSION < Test::Unit::TestCase
15
15
  def test_version
16
- assert_equal('0.6.3', Sys::CPU::VERSION)
16
+ assert_equal('0.6.4', Sys::CPU::VERSION)
17
17
  end
18
18
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sys-cpu
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
5
- prerelease: false
4
+ hash: 15
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 3
10
- version: 0.6.3
9
+ - 4
10
+ version: 0.6.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel J. Berger
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-09 00:00:00 -06:00
19
- default_executable:
18
+ date: 2011-09-27 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: test-unit
@@ -26,12 +25,12 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 9
28
+ hash: 15
30
29
  segments:
31
30
  - 2
32
- - 0
33
- - 3
34
- version: 2.0.3
31
+ - 1
32
+ - 2
33
+ version: 2.1.2
35
34
  type: :development
36
35
  version_requirements: *id001
37
36
  description: " The sys-cpu library provides an interface for gathering information\n about your system's processor(s). Information includes speed, type,\n and load average.\n"
@@ -76,7 +75,6 @@ files:
76
75
  - test/test_sys_cpu_sunos.rb
77
76
  - test/test_sys_cpu_version.rb
78
77
  - test/test_sys_cpu_windows.rb
79
- has_rdoc: true
80
78
  homepage: http://www.rubyforge.org/projects/sysutils
81
79
  licenses: []
82
80
 
@@ -106,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
104
  requirements: []
107
105
 
108
106
  rubyforge_project: sysutils
109
- rubygems_version: 1.3.7
107
+ rubygems_version: 1.8.10
110
108
  signing_key:
111
109
  specification_version: 3
112
110
  summary: A Ruby interface for providing CPU information