class Havox::DSL::DirectiveProxy

Public Instance Methods

associate(router, switch) click to toggle source
# File lib/havox/dsl/directive_proxy.rb, line 18
def associate(router, switch)
  Havox::Network.devices[router.to_s] = switch.to_s
end
exit(switch, &block) click to toggle source
# File lib/havox/dsl/directive_proxy.rb, line 4
def exit(switch, &block)
  eval_directive(:exit, switch, &block)
end
topology(file_path) click to toggle source

def drop(&block)

eval_directive(:drop, nil, &block)

end

# File lib/havox/dsl/directive_proxy.rb, line 12
def topology(file_path)
  raise_invalid_topology(file_path) unless File.exists?(file_path)
  topo = Havox::Topology.new(file_path)
  Havox::Network.topology = topo
end

Private Instance Methods

eval_directive(type, switch, &block) click to toggle source
# File lib/havox/dsl/directive_proxy.rb, line 24
def eval_directive(type, switch, &block)
  directive = Havox::DSL::Directive.new(type, switch)
  directive.instance_eval(&block)
  Havox::Network.directives << directive
end
raise_invalid_topology(file_path) click to toggle source
# File lib/havox/dsl/directive_proxy.rb, line 30
def raise_invalid_topology(file_path)
  raise Havox::Network::InvalidTopology,
    "invalid topology file '#{file_path}'"
end