class MacOS::IfConfig

Attributes

broadcast_address[RW]
interface[RW]
ipv4_address[RW]
mac_address[RW]
netmask[RW]
status[RW]

Public Class Methods

active()
Alias for: active_interfaces
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
all(output = nil)
Alias for: parse
ethernet_addresses()
Alias for: mac_addresses
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()
Alias for: inactive_interfaces
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
interfaces(output = nil)
Alias for: parse
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()
Alias for: up_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
name()
Alias for: interface_name
up?() click to toggle source
# File lib/MacOS/IfConfig.rb, line 141
def up?
  active? || @ipv4_address
end