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