systeminfo/lib/ram_info.rb

32 lines
888 B
Ruby
Raw Normal View History

2023-09-21 18:03:25 -06:00
# frozen_string_literal: true
require 'English'
class RamInfo
def self.gather_info
ram_info = {}
# Get total and used RAM in GB
mem_data = `free -g`.split("\n")[1].split(/\s+/)
ram_info[:total_ram] = mem_data[1].to_i
ram_info[:used_ram] = mem_data[2].to_i
# Get RAM type and speed
begin
2023-09-22 14:10:28 -06:00
dmi_data = `sudo dmidecode --type 17`.split("\n")
2023-09-21 18:03:25 -06:00
ram_info[:ram_type] = dmi_data.select { |line| line =~ /Type:/ }.first.split(':').last.strip
ram_info[:ram_speed] = dmi_data.select { |line| line =~ /Speed:/ }.first.split(':').last.strip
rescue StandardError
ram_info[:ram_type] = 'No permission'
ram_info[:ram_speed] = 'No permission'
end
# Handle permission issues
if $CHILD_STATUS.exitstatus != 0
ram_info[:ram_type] = 'No permission'
ram_info[:ram_speed] = 'No permission'
end
ram_info
end
end