summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRick Bradley <rick@rickbradley.com>2007-10-15 11:07:48 -0500
committerRick Bradley <rick@rickbradley.com>2007-10-15 11:07:48 -0500
commit31384fea2263d9ee0e65312b4a0b956436022e63 (patch)
treeb85a94ff2cfa8308df6a5586add93ae629acad9c /lib
parent8c935deed405299c304ccbe370c9240fda63cafb (diff)
downloadpuppet-31384fea2263d9ee0e65312b4a0b956436022e63.tar.gz
puppet-31384fea2263d9ee0e65312b4a0b956436022e63.tar.xz
puppet-31384fea2263d9ee0e65312b4a0b956436022e63.zip
Pushing functionality down to webrick/mongrel classes now; cleanup in the base server / http server classes + specs.
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/network/http.rb20
-rw-r--r--lib/puppet/network/http/mongrel.rb2
-rw-r--r--lib/puppet/network/http/webrick.rb2
-rw-r--r--lib/puppet/network/server.rb15
4 files changed, 17 insertions, 22 deletions
diff --git a/lib/puppet/network/http.rb b/lib/puppet/network/http.rb
index c46a73159..86784e50e 100644
--- a/lib/puppet/network/http.rb
+++ b/lib/puppet/network/http.rb
@@ -1,18 +1,10 @@
class Puppet::Network::HTTP
- def self.new(args = {})
- raise ArgumentError, ":server_type is required" unless args[:server_type]
- obj = class_for_server_type(args[:server_type]).allocate
- obj.send :initialize, args.delete_if {|k,v| k == :server_type }
- obj
- end
-
- class << self
- def class_for_server_type(server_type)
- Class.new
- # TODO: this will end up probably: { :webrick => ... }
-
- end
- private :class_for_server_type
+ def self.server_class_by_type(kind)
+ return Puppet::Network::HTTP::WEBRick if kind == :webrick
+ return Puppet::Network::HTTP::Mongrel if kind == :mongrel
+ raise ArgumentError, "Unknown HTTP server name [#{kind}]"
end
end
+require 'puppet/network/http/webrick'
+require 'puppet/network/http/mongrel'
diff --git a/lib/puppet/network/http/mongrel.rb b/lib/puppet/network/http/mongrel.rb
new file mode 100644
index 000000000..dda3c1751
--- /dev/null
+++ b/lib/puppet/network/http/mongrel.rb
@@ -0,0 +1,2 @@
+class Puppet::Network::HTTP::Mongrel
+end
diff --git a/lib/puppet/network/http/webrick.rb b/lib/puppet/network/http/webrick.rb
new file mode 100644
index 000000000..ad15261f6
--- /dev/null
+++ b/lib/puppet/network/http/webrick.rb
@@ -0,0 +1,2 @@
+class Puppet::Network::HTTP::WEBRick
+end
diff --git a/lib/puppet/network/server.rb b/lib/puppet/network/server.rb
index 177cce4df..941cb9df1 100644
--- a/lib/puppet/network/server.rb
+++ b/lib/puppet/network/server.rb
@@ -1,9 +1,10 @@
class Puppet::Network::Server
- attr_reader :server_type, :http_server
+ attr_reader :server_type, :http_server_class, :protocols
def initialize(args = {})
@server_type = Puppet[:servertype] or raise "No servertype configuration found." # e.g., WEBrick, Mongrel, etc.
@http_server_class = http_server_class_by_type(@server_type)
+ @protocols = []
@listening = false
@routes = {}
self.register(args[:handlers]) if args[:handlers]
@@ -33,26 +34,24 @@ class Puppet::Network::Server
def listen
raise "Cannot listen -- already listening." if listening?
- initialize_http_server
- self.http_server.listen(@routes.dup)
+ http_server.listen(@routes.dup)
@listening = true
end
def unlisten
raise "Cannot unlisten -- not currently listening." unless listening?
- self.http_server.unlisten
+ http_server.unlisten
@listening = false
end
private
- def initialize_http_server
- @server = @http_server_class.new
+ def http_server
+ @http_server ||= http_server_class.new
end
def http_server_class_by_type(kind)
- # TODO: this will become Puppet::Network::HTTP::WEBrick or Puppet::Network::HTTP::Mongrel
- Class.new
+ Puppet::Network::HTTP.server_class_by_type(kind)
end
end