class Wdmc::Device

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/wdmc/device.rb, line 5
def initialize(*args)
  @wdmc = Wdmc::Client.new
  @device_description = @wdmc.device_description
  @system_information = @wdmc.system_information
  @firmware = @wdmc.firmware
  @shares = @wdmc.all_shares
  @network = @wdmc.network
  @system_state = @wdmc.system_state
  super
end

Public Instance Methods

firmware() click to toggle source
# File lib/wdmc/device.rb, line 30
def firmware
  puts "Firmware".upcase.color(:magenta)
  puts "\sFW Version\t\t: ".color(:whitesmoke) + @firmware[:current_firmware][:package][:version]
  if @firmware[:firmware_update_available][:available] == 'false'
    puts "\s\s- Updates available\t: ".color(:whitesmoke) + @firmware[:firmware_update_available][:available].color(:green)
  else
    puts "\s\s- Updates available\t: ".color(:whitesmoke) + @firmware[:firmware_update_available][:available].color(:orange)
  end
  if @firmware[:upgrades][:available] == 'false'
    puts "\s\s- Upgrades available\t: ".color(:whitesmoke) + @firmware[:upgrades][:available].color(:green)
  else
    puts "\s\s- Upgrades available\t: ".color(:whitesmoke) + @firmware[:upgrades][:available].color(:orange)
  end
end
info() click to toggle source
# File lib/wdmc/device.rb, line 46
def info
  puts "Device Information".upcase.color(:magenta)
  puts "\sDevice Name\t\t: ".color(:whitesmoke) + @device_description[:machine_name]
  puts "\sModel / Number\t\t: ".color(:whitesmoke) + "#{@system_information[:model_name]} " + @system_information[:model_number]
  puts "\sSerial Number\t\t: ".color(:whitesmoke) + @system_information[:serial_number]
  puts "\sDrive Number Serial\t: ".color(:whitesmoke) + @system_information[:master_drive_serial_number]
  puts "\sCapacity\t\t: ".color(:whitesmoke) + @system_information[:capacity]
  puts "\sShares\t\t\t: ".color(:whitesmoke) + @shares.size.to_s
end
network() click to toggle source
# File lib/wdmc/device.rb, line 70
def network
  puts "Network Configuration".upcase.color(:magenta)
  puts "\sInterface\t\t: ".color(:whitesmoke) + @network[:ifname]
  puts "\sType\t\t\t: ".color(:whitesmoke) + @network[:iftype]
  puts "\sProtocol\t\t: ".color(:whitesmoke) + @network[:proto]
  puts "\sIP Address\t\t: ".color(:whitesmoke) + @network[:ip]
  puts "\sMAC Address\t\t: ".color(:whitesmoke) + @system_information[:mac_address]
  puts "\sNetmask\t\t: ".color(:whitesmoke) + @network[:netmask]
  puts "\sGateway\t\t: ".color(:whitesmoke) + @network[:gateway]
  puts "\sDNS Servers\t\t: ".color(:whitesmoke) +
           [@network[:dns0], @network[:dns1], @network[:dns2]].reject(&:empty?).join(', ')
end
state() click to toggle source
# File lib/wdmc/device.rb, line 84
def state
  puts "Device State".upcase.color(:magenta)
  puts "\sStatus\t\t\t: ".color(:whitesmoke) + @system_state[:status]
  puts "\sTemperature\t\t: ".color(:whitesmoke) + @system_state[:temperature].color(:green) if @system_state[:temperature] == 'good'
  puts "\sTemperature\t\t: ".color(:whitesmoke) + @system_state[:temperature].color(:orange) if @system_state[:temperature] == 'bad'
  puts "\sS.M.A.R.T\t\t: ".color(:whitesmoke) + @system_state[:smart].color(:green) if @system_state[:smart] == 'good'
  puts "\sS.M.A.R.T\t\t: ".color(:whitesmoke) + @system_state[:smart].color(:orange) if @system_state[:smart] == 'bad'
  puts "\sVolume\t\t\t: ".color(:whitesmoke) + @system_state[:volume].color(:green) if @system_state[:volume] == 'good'
  puts "\sVolume\t\t\t: ".color(:whitesmoke) + @system_state[:volume].color(:orange) if @system_state[:volume] == 'bad'
  puts "\sFree Space\t\t: ".color(:whitesmoke) + @system_state[:free_space].color(:green) if @system_state[:free_space] == 'good'
  puts "\sFree Space\t\t: ".color(:whitesmoke) + @system_state[:free_space].color(:orange) if @system_state[:free_space] == 'bad'
  puts "\sReported Status\t: ".color(:whitesmoke) + @system_state[:reported_status].color(:green) if @system_state[:reported_status] == 'good'
  puts "\sReported Status\t: ".color(:whitesmoke) + @system_state[:reported_status].color(:orange) if @system_state[:reported_status] == 'bad'
end
summary() click to toggle source
# File lib/wdmc/device.rb, line 17
def summary
  info
  puts
  firmware
  puts
  usage
  puts
  state
  puts
  network
end
usage() click to toggle source
# File lib/wdmc/device.rb, line 57
def usage
  usage = @wdmc.storage_usage
  free = usage[:size].to_i - usage[:usage].to_i
  puts "Device Usage".upcase.color(:magenta)
  puts "\sCapacity\t\t: ".color(:whitesmoke) + Filesize.from("#{usage[:size]} B").to_s('GB')
  puts "\sFree\t\t\t: ".color(:whitesmoke) + Filesize.from("#{free} B").to_s('GB')
  puts "\sUsage\t\t\t: ".color(:whitesmoke) + Filesize.from("#{usage[:usage]} B").to_s('GB')
  puts "\s\s- Videos\t\t: ".color(:whitesmoke) + Filesize.from("#{usage[:video]} B").to_s('GB') if usage[:video].to_i > 0
  puts "\s\s- Photos\t\t: ".color(:whitesmoke) + Filesize.from("#{usage[:photo]} B").to_s('GB') if usage[:photo].to_i > 0
  puts "\s\s- Music\t\t: ".color(:whitesmoke) + Filesize.from("#{usage[:music]} B").to_s('GB') if usage[:music].to_i > 0
end