lib/iisconfig/application.rb in iisconfig-0.4.1 vs lib/iisconfig/application.rb in iisconfig-0.5.0
- old
+ new
@@ -1,47 +1,58 @@
-require 'iis_object'
-require 'virtual_directory'
-
-module IISConfig
-
- class Application < IISObject
-
- def name(name)
- @name = name
- @virtual_directories = []
- @app_pool = nil
- end
-
- def path(path)
- @path = path
- end
-
- def physical_path(path)
- @physical_path = path
- end
-
- def app_pool(name)
- @app_pool = name
- end
-
- def virtual_directory(&block)
- add_instance(@virtual_directories, IISConfig::VirtualDirectory, block)
- end
-
- def build_commands(site, app_pool)
- commands = []
-
- commands << %W{ADD APP /site.name:#{site} /path:#{@path} /physicalPath:#{@physical_path.gsub(/\//, '\\')}}
-
- app_pool = @app_pool unless @app_pool.nil?
- commands << %W{SET SITE /site.name:#{site}/#{@name} /[path='#{@path}'].applicationPool:#{app_pool}}
-
- @virtual_directories.each do |s|
- commands += s.build_commands "#{site}/#{@name}"
- end
-
- commands
- end
-
- end
-
-end
\ No newline at end of file
+require 'iis_object'
+require 'virtual_directory'
+
+module IISConfig
+
+ class Application < IISObject
+
+ def name(name)
+ @name = name
+ @virtual_directories = []
+ @app_pool = nil
+ end
+
+ def path(path)
+ @path = path
+ end
+
+ def auto_start_provider(name, type)
+ @start_provider_name = name
+ @start_provider_type = type
+ end
+
+ def physical_path(path)
+ @physical_path = path
+ end
+
+ def app_pool(name)
+ @app_pool = name
+ end
+
+ def virtual_directory(&block)
+ add_instance(@virtual_directories, IISConfig::VirtualDirectory, block)
+ end
+
+ def build_commands(site, app_pool)
+ commands = []
+
+ commands << %W{ADD APP /site.name:#{site} /path:#{@path} /physicalPath:#{@physical_path.gsub(/\//, '\\')}}
+
+ app_pool = @app_pool unless @app_pool.nil?
+ commands << %W{SET SITE /site.name:#{site}/#{@name} /[path='#{@path}'].applicationPool:#{app_pool}}
+
+ if @start_provider_name
+ commands << %W{set config -section:system.applicationHost/serviceAutoStartProviders /-"[name='#{@start_provider_name}']" /commit:apphost} if start_provider_exist? @start_provider_name
+ commands << %W{set config -section:system.applicationHost/serviceAutoStartProviders /+"[name='#{@start_provider_name}',type='#{@start_provider_type}']" /commit:apphost}
+ commands << %W{set app #{site}/#{@name} /serviceAutoStartEnabled:True /serviceAutoStartProvider:#{@start_provider_name}}
+ end
+
+ @virtual_directories.each do |s|
+ commands += s.build_commands "#{site}/#{@name}"
+ end
+
+ commands
+ end
+
+ end
+
+end