about summary refs log tree commit homepage
path: root/projects/mongrel_service/lib/mongrel_service/init.rb
diff options
context:
space:
mode:
Diffstat (limited to 'projects/mongrel_service/lib/mongrel_service/init.rb')
-rw-r--r--projects/mongrel_service/lib/mongrel_service/init.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/projects/mongrel_service/lib/mongrel_service/init.rb b/projects/mongrel_service/lib/mongrel_service/init.rb
index c6fea0e..f1475f0 100644
--- a/projects/mongrel_service/lib/mongrel_service/init.rb
+++ b/projects/mongrel_service/lib/mongrel_service/init.rb
@@ -2,7 +2,6 @@ require 'gem_plugin'
 require 'mongrel'
 require 'mongrel/rails'
 require 'rbconfig'
-require 'win32/service'
 require 'fileutils'
 
 module Service
@@ -34,6 +33,10 @@ module Service
     # of the rails application we wanted to serve, because later "as service" no error
     # show to trace this.
     def validate
+      # TODO: investigate why Win32::Service interfere with gem_plugin
+      gem 'win32-service', '>= 0.5.2', '< 0.6.0'
+      require 'win32/service'
+
       @cwd = File.expand_path(@cwd)
       valid_dir? @cwd, "Invalid path to change to: #@cwd"
   
@@ -74,6 +77,9 @@ module Service
     end
     
     def run
+      gem 'win32-service', '>= 0.5.2', '< 0.6.0'
+      require 'win32/service'
+
       # check if mongrel_service.exe is in ruby bindir.
       gem_root = File.join(File.dirname(__FILE__), "..", "..")
       gem_executable = File.join(gem_root, "bin/mongrel_service.exe")
@@ -164,6 +170,9 @@ module Service
     
     def validate
       valid? @svc_name != nil, "A service name is mandatory."
+
+      gem 'win32-service', '>= 0.5.2', '< 0.6.0'
+      require 'win32/service'
       
       # Validate that the service exists
       begin
@@ -183,6 +192,9 @@ module Service
     include ServiceValidation
     
     def run
+      gem 'win32-service', '>= 0.5.2', '< 0.6.0'
+      require 'win32/service'
+
       display_name = Win32::Service.getdisplayname(@svc_name)
       
       begin