summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRick Bradley <rick@rickbradley.com>2007-10-04 13:47:36 -0500
committerRick Bradley <rick@rickbradley.com>2007-10-04 13:47:36 -0500
commit24121996ac214395106a0bb11f4d2a5c350f99b3 (patch)
tree1db64b5d2a645fe8c344439107af6cab8d77ad0d /lib
parent102ad23acb1c798c99b013e86b1d67350bbced7c (diff)
downloadpuppet-24121996ac214395106a0bb11f4d2a5c350f99b3.tar.gz
puppet-24121996ac214395106a0bb11f4d2a5c350f99b3.tar.xz
puppet-24121996ac214395106a0bb11f4d2a5c350f99b3.zip
Allow for multiple REST servers to be active; some terminology changes in spec; fleshing out more behavior, implementing.
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/network/rest_server.rb44
1 files changed, 23 insertions, 21 deletions
diff --git a/lib/puppet/network/rest_server.rb b/lib/puppet/network/rest_server.rb
index 7c745f321..50ca939ee 100644
--- a/lib/puppet/network/rest_server.rb
+++ b/lib/puppet/network/rest_server.rb
@@ -1,35 +1,37 @@
class Puppet::Network::RESTServer # :nodoc:
- @@routes = {}
- @@listening = false
+ attr_reader :server
- def self.register(*indirections)
+ 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 }
+ indirections.flatten.each { |i| @routes[i.to_sym] = true }
end
- def self.unregister(*indirections)
- raise ArgumentError, "indirection names are required" if indirections.empty?
+ 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)
+ 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
-
- def self.listening?
- @@listening
+
+ def listening?
+ @listening
end
- def self.listen
- raise "Cannot listen -- already listening" if @@listening
- @@listening = true
+ def listen
+ raise "Cannot listen -- already listening" if listening?
+ @listening = true
end
- def self.unlisten
- raise "Cannot unlisten -- not currently listening" unless @@listening
- @@listening = false
+ def unlisten
+ raise "Cannot unlisten -- not currently listening" unless listening?
+ @listening = false
end
end