summaryrefslogtreecommitdiffstats
path: root/lib/puppet/network/rest_server.rb
blob: 0ffa8ff164b1e6eae8dde056ede45906829098b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Puppet::Network::RESTServer # :nodoc:
  @@routes = {}
  
  def self.register(*indirections)
    raise ArgumentError, "indirection names are required" if indirections.empty?
    indirections.flatten.each { |i| @@routes[i.to_sym] = true }
  end
  
  def self.unregister(*indirections)
    raise ArgumentError, "indirection names are required" if indirections.empty?
    indirections.flatten.each do |i|
      raise(ArgumentError, "indirection [%s] is not known" % i) unless @@routes[i.to_sym]
      @@routes.delete(i.to_sym)
    end
  end
  
  def self.reset
    self.unregister(@@routes.keys) unless @@routes.keys.empty?
  end
end