class Net::IP::Route::Collection

Public Class Methods

new(table) click to toggle source
# File lib/net/ip/route/collection.rb, line 10
def initialize(table)
  @table = table
end

Public Instance Methods

add(route) click to toggle source

Add a route to the routing table @example Create a route to the 10.0.0.0/8 network

route = Net::IP::Route.new(:prefix => '10.0.0.0/8', :dev => 'eth0')
Net::IP::Route.add_route(route)

@param route {Route} Route to add to the table. @return {void}

# File lib/net/ip/route/collection.rb, line 51
def add(route)
  cmd = "ip route add table #{@table} #{route.prefix} #{route.to_params}"
  result = `#{cmd}`
  raise result unless $?.success?
end
all() click to toggle source

Get a list of all routes @return {Array<Route>}

# File lib/net/ip/route/collection.rb, line 23
def all
  Parser.parse(`ip route show table #{@table}`).collect {|r| Route.new(r)}
end
each() { |route| ... } click to toggle source

Enumerate all routes @yield {Route} @return {void}

# File lib/net/ip/route/collection.rb, line 17
def each(&block)
  Parser.parse(`ip route show table #{@table}`).each {|r| yield(Route.new(r))}
end
flush(selector) click to toggle source

Flush the routing table based on a selector @example Flush the routing table cache

Net::IP::Route.flush(:cache)

@param selector {String} The selector string. @return {void}

# File lib/net/ip/route/collection.rb, line 62
def flush(selector)
  result = `ip route flush #{selector}`
  raise result unless $?.success?
end
gateways() click to toggle source

Get a list of all default gateway routes @return {Array<Route>}

# File lib/net/ip/route/collection.rb, line 29
def gateways
  find_all {|r| r.prefix == "default"}
end
update_gateways(gateways) click to toggle source

Update the list of default gateways @example Change the default gateway to 192.168.0.1

gateway = Net::IP::Route.new(:prefix => 'default', :via => '192.168.0.1')
Net::IP::Route.update_gateways([gateway])

@param gateways {Array<Route>} List of default gateways to use. @return {void}

# File lib/net/ip/route/collection.rb, line 39
def update_gateways(gateways)
  params = gateways.collect {|gateway| "nexthop " + gateway.to_params}
  result = `ip route replace default table #{@table} #{params.join(" ")}`
  raise result unless $?.success?
end