module Sys::CPU

Public Class Methods

processors() { |cpu| ... } click to toggle source
   # File lib/rails_pwnerer/base/cpus.rb
 6 def self.processors
 7   cpuinfo_text = File.read '/proc/cpuinfo'
 8   cpus_text = cpuinfo_text.split "\n\n"
 9   cpus = []
10   cpus_text.each do |cpu_text|
11     cpu = {}
12     cpu_text.each_line do |cpu_line|
13       key, value = *cpu_line.split(':', 2)
14       key.strip!
15       key.gsub! /\s/, '_'
16       key.downcase!
17       value.strip!
18       cpu[key.to_sym] = value
19     end
20     cpus << Struct.new(*cpu.keys).new(*cpu.values)
21   end
22   
23   cpus.each { |cpu| yield cpu } if Kernel.block_given?
24   return cpus
25 end