summaryrefslogtreecommitdiffstats
path: root/lib/puppet/network/rest_server.rb
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2007-10-05 00:08:15 -0500
committerLuke Kanies <luke@madstop.com>2007-10-05 00:08:15 -0500
commit275af562b462813ddf5ddbad2192ddc2bf57770c (patch)
treeaceabf68095b8c34fd599f245022a9aaab0984da /lib/puppet/network/rest_server.rb
parentce0178316d8cefd072f53d39b59ce47332f6ec8f (diff)
parent29accba1b9343f4967c15d36506b3bf60d5f0f9c (diff)
downloadpuppet-275af562b462813ddf5ddbad2192ddc2bf57770c.tar.gz
puppet-275af562b462813ddf5ddbad2192ddc2bf57770c.tar.xz
puppet-275af562b462813ddf5ddbad2192ddc2bf57770c.zip
Merge branch 'routing' of http://git.rickbradley.com/puppet into routing
Diffstat (limited to 'lib/puppet/network/rest_server.rb')
-rw-r--r--lib/puppet/network/rest_server.rb37
1 files changed, 36 insertions, 1 deletions
diff --git a/lib/puppet/network/rest_server.rb b/lib/puppet/network/rest_server.rb
index e415e8bcb..d1206928c 100644
--- a/lib/puppet/network/rest_server.rb
+++ b/lib/puppet/network/rest_server.rb
@@ -1,2 +1,37 @@
-class Puppet::Network::RESTServer # :nodoc:
+class Puppet::Network::RESTServer
+ attr_reader :server
+
+ def initialize(args = {})
+ raise(ArgumentError, "requires :server to be specified") unless args[:server]
+ @routes = {}
+ @listening = false
+ @server = args[:server]
+ end
+
+ def register(*indirections)
+ raise ArgumentError, "indirection names are required" if indirections.empty?
+ indirections.flatten.each { |i| @routes[i.to_sym] = true }
+ end
+
+ def unregister(*indirections)
+ indirections = @routes.keys 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 listening?
+ @listening
+ end
+
+ def listen
+ raise "Cannot listen -- already listening" if listening?
+ @listening = true
+ end
+
+ def unlisten
+ raise "Cannot unlisten -- not currently listening" unless listening?
+ @listening = false
+ end
end