diff options
| author | Rick Bradley <rick@rickbradley.com> | 2007-10-15 11:07:48 -0500 |
|---|---|---|
| committer | Rick Bradley <rick@rickbradley.com> | 2007-10-15 11:07:48 -0500 |
| commit | 31384fea2263d9ee0e65312b4a0b956436022e63 (patch) | |
| tree | b85a94ff2cfa8308df6a5586add93ae629acad9c /lib | |
| parent | 8c935deed405299c304ccbe370c9240fda63cafb (diff) | |
| download | puppet-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.rb | 20 | ||||
| -rw-r--r-- | lib/puppet/network/http/mongrel.rb | 2 | ||||
| -rw-r--r-- | lib/puppet/network/http/webrick.rb | 2 | ||||
| -rw-r--r-- | lib/puppet/network/server.rb | 15 |
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 |
