class MacOS::IfConfig
Attributes
broadcast_address[RW]
interface[RW]
ipv4_address[RW]
mac_address[RW]
netmask[RW]
status[RW]
Public Class Methods
active_interfaces()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 56 def active_interfaces all.select(&:active?) end
Also aliased as: active
active_interfaces_names()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 61 def active_interfaces_names all.select(&:active?).collect(&:interface_name) end
find_by_interface(interface)
click to toggle source
# File lib/MacOS/IfConfig.rb, line 92 def find_by_interface(interface) all.find{|ifconfig| ifconfig.interface == interface} end
find_by_ipv4_address(ipv4_address)
click to toggle source
# File lib/MacOS/IfConfig.rb, line 100 def find_by_ipv4_address(ipv4_address) all.find{|ifconfig| ifconfig.ipv4_address == ipv4_address} end
find_by_mac_address(mac_address)
click to toggle source
# File lib/MacOS/IfConfig.rb, line 96 def find_by_mac_address(mac_address) all.find{|ifconfig| ifconfig.mac_address == mac_address} end
inactive_interfaces()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 65 def inactive_interfaces all.select(&:inactive?) end
Also aliased as: inactive
inactive_interfaces_names()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 70 def inactive_interfaces_names all.select(&:inactive?).collect(&:interface_name) end
interface_names()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 52 def interface_names all.collect(&:interface_name) end
ipv4_addresses()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 88 def ipv4_addresses all.collect(&:ipv4_address).compact end
mac_addresses()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 83 def mac_addresses all.collect(&:mac_address).compact end
Also aliased as: ethernet_addresses
new(interface: nil, mac_address: nil, ipv4_address: nil, netmask: nil, broadcast_address:nil, status: nil)
click to toggle source
# File lib/MacOS/IfConfig.rb, line 117 def initialize(interface: nil, mac_address: nil, ipv4_address: nil, netmask: nil, broadcast_address:nil, status: nil) @interface = interface @mac_address = mac_address @ipv4_address, @netmask, @broadcast_address = ipv4_address, netmask, broadcast_address @status = status end
parse(output = nil)
click to toggle source
# File lib/MacOS/IfConfig.rb, line 20 def parse(output = nil) output ||= self.output @ifconfigs = [] interface = nil output.each_line do |line| if line =~ /^\t/ case line when /ether/ @ifconfig.mac_address = line.capture(/ *ether (.+) $/) when /inet / if line.match(/broadcast/) @ifconfig.ipv4_address, @ifconfig.netmask, @ifconfig.broadcast_address = line.captures(/ *inet (\d+(?:\.\d+){3}) netmask (.+) broadcast (.+)$/) elsif line.match(/-->/) ipv4_addresses, @ifconfig.netmask = line.captures(/ *inet (.+) netmask (.+) $/) @ifconfig.ipv4_address = ipv4_addresses.split(' --> ').first else @ifconfig.ipv4_address, @ifconfig.netmask = line.captures(/ *inet (\d+(?:\.\d+){3}) netmask (.+) $/) end when /status\:/ @ifconfig.status = line.capture(/ *status: (.+)$/) end else @ifconfigs << @ifconfig if @ifconfig @ifconfig = new @ifconfig.interface, _rest_of_line = line.captures(/^(.+?): (.+)$/) end end @ifconfigs << @ifconfig end
Also aliased as: all, interfaces
up_interfaces()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 74 def up_interfaces all.select(&:up?) end
Also aliased as: up
up_interfaces_names()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 79 def up_interfaces_names all.select(&:up?).collect(&:interface_name) end
Private Class Methods
output()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 106 def output `ifconfig -a` end
Public Instance Methods
active?()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 133 def active? @status == 'active' end
ethernet_address()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 129 def ethernet_address @mac_address end
inactive?()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 137 def inactive? @status == 'inactive' end
interface_name()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 124 def interface_name @interface end
Also aliased as: name
up?()
click to toggle source
# File lib/MacOS/IfConfig.rb, line 141 def up? active? || @ipv4_address end