Class: Linux::Ip::Route::IpRoute

Inherits:
Object
  • Object
show all
Defined in:
lib/linux/ip/route.rb

Defined Under Namespace

Classes: IfaceRoute, Options, ViaRoute

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeIpRoute



10
11
12
13
# File 'lib/linux/ip/route.rb', line 10

def initialize
  @interfaces = {}
  @routes = []
end

Instance Attribute Details

#interfacesObject (readonly)

Returns the value of attribute interfaces.



9
10
11
# File 'lib/linux/ip/route.rb', line 9

def interfaces
  @interfaces
end

#routesObject (readonly)

Returns the value of attribute routes.



9
10
11
# File 'lib/linux/ip/route.rb', line 9

def routes
  @routes
end

Instance Method Details

#add_dev(dev, dst, options) ⇒ Object



60
61
62
63
64
65
# File 'lib/linux/ip/route.rb', line 60

def add_dev(dev, dst, options)
  @interfaces[dev] ||= []
  route = IfaceRoute.new(dst, dev, Options.new(options))
  @interfaces[dev] << route
  @routes << route
end

#add_via(dev, dst, via, options = "") ⇒ Object



42
43
44
45
46
47
# File 'lib/linux/ip/route.rb', line 42

def add_via(dev, dst, via, options = "")
  @interfaces[dev] ||= []
  route = ViaRoute.new(dst, via, dev, Options.new(options))
  @interfaces[dev] << route
  @routes << route
end

#as_commands(direction = 'add') ⇒ Object



15
16
17
18
19
# File 'lib/linux/ip/route.rb', line 15

def as_commands(direction = 'add')
  @routes.map do |route|
    route.as_commands(direction)
  end.flatten.compact.join("\n")
end

#find(name) ⇒ Object



70
71
72
# File 'lib/linux/ip/route.rb', line 70

def find(name)
  interfaces.find { |i| i.name == name }
end

#lengthObject



67
68
69
# File 'lib/linux/ip/route.rb', line 67

def length
  interfaces.length
end