Class: Arbi::Modules::Net

Inherits:
Module
  • Object
show all
Defined in:
lib/arbi/modules/net.rb

Instance Attribute Summary

Attributes inherited from Module

#data

Instance Method Summary collapse

Methods inherited from Module

__method_missing__, #every, inherited, json_create, method_missing, modules, name, #to_json

Constructor Details

#initialize(data = []) ⇒ Net

Returns a new instance of Net.



45
46
47
48
49
50
51
52
53
# File 'lib/arbi/modules/net.rb', line 45

def initialize(data = [])
  super(data)

  @mutex = Mutex.new
  @prev = {:up => {}, :down => {}}
  @datas = []

  every 1, :timeout => 10, &self.method(:update)
end

Instance Method Details

#formatObject



66
67
68
69
70
71
72
# File 'lib/arbi/modules/net.rb', line 66

def format
  tablize([['IFACE', 'UP', 'DOWN', 'STATE', 'QUALITY', 'ESSID']] + @data.map {|x|
    [x[:name] || x['name'], x[:up] || x['up'], x[:down] || x['down'],
      ((x[:state] || x['state']) ? 'on' : 'off'), x[:quality] || x['quality'],
      x[:essid] || x['essid']]
  })
end

#refreshObject



60
61
62
63
64
# File 'lib/arbi/modules/net.rb', line 60

def refresh
  @mutex.synchronize {
    @data = @datas.dup
  }
end

#valid?Boolean

Returns:

  • (Boolean)


55
56
57
58
# File 'lib/arbi/modules/net.rb', line 55

def valid?
  File.exist?('/proc/net/dev') and File.exist?('/proc/net/route') and
    File.exist?('/proc/net/wireless')
end