lib/net/ip/route.rb
module Net
module IP
# Class for working with routing table entries.
class Route
attr_reader :prefix, :via
# Create a new route object
# @example Create a default route
# Net::IP::Route.new(:prefix => 'default', :via => '192.168.0.1')
# @example Create a normal route
# Net::IP::Route.new(:prefix => '10.0.0.0/8', :dev => 'eth0')
# @note This does NOT add the entry to the routing table. See {Route::Collection#add} for creating new routes in the routing table.
# @param params {Hash}
def initialize(params = {})
params.each do |k,v|
instance_variable_set("@#{k}", v)
end
end
def to_h
h = {}
h[:prefix] = @prefix if @prefix
h[:via] = @via if @via
h[:dev] = @dev if @dev
h[:weight] = @weight if @weight
h[:proto] = @proto if @proto
h[:scope] = @scope if @scope
h[:src] = @src if @src
h[:metric] = @metric if @metric
h[:error] = @error if @error
h
end
def to_params
str = ""
str << "via #{@via} " if @via
str << "dev #{@dev} " if @dev
str << "weight #{@weight}" if @weight
str << " proto #{@proto} " if @proto
str << " scope #{@scope} " if @scope
str << " src #{@src} " if @src
str << " metric #{@metric} " if @metric
str << " error #{@error}" if @error
str
end
end
end
end