Class: IISConfig::Site

Inherits:
IISObject show all
Defined in:
lib/iisconfig/site.rb

Instance Method Summary collapse

Methods inherited from IISObject

#exist?

Constructor Details

#initializeSite

Returns a new instance of Site.



8
9
10
11
12
13
# File 'lib/iisconfig/site.rb', line 8

def initialize
  @bindings = []
  @applications = []
  @virtual_directories = []
  @path = '/'
end

Instance Method Details

#addObject



48
49
50
51
52
53
54
55
56
57
# File 'lib/iisconfig/site.rb', line 48

def add
  args = []
  args << 'ADD'
  args << 'SITE'
  args << "/name:#{@name}"
  args << "/bindings:\"#{@bindings.join('","')}\""
  args << "/physicalPath:#{@physical_path.gsub(/\//, '\\')}"

  args
end

#app_pool(pool) ⇒ Object



28
29
30
# File 'lib/iisconfig/site.rb', line 28

def app_pool(pool)
  @app_pool = pool
end

#application(&block) ⇒ Object



36
37
38
# File 'lib/iisconfig/site.rb', line 36

def application(&block)
  add_instance(@applications, IISConfig::Application, block)
end

#binding(binding) ⇒ Object



20
21
22
# File 'lib/iisconfig/site.rb', line 20

def binding(binding)
  @bindings << binding
end

#build_commandsObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/iisconfig/site.rb', line 65

def build_commands()
  commands = []
  commands << delete if exist? :site, @name
  commands << add
  commands << %W{SET SITE /site.name:#{@name} /[path='#{@path}'].applicationPool:#{@app_pool}} unless @app_pool.nil?
  commands << %W{SET SITE /site.name:#{@name} /[path='#{@path}']} if @app_pool.nil?

  @applications.each do |s|
    commands += s.build_commands @name, @app_pool
  end

  @virtual_directories.each do |s|
    commands += s.build_commands "#{name}/"
  end

  commands
end

#deleteObject



44
45
46
# File 'lib/iisconfig/site.rb', line 44

def delete
  %W{DELETE SITE #{@name}}
end

#name(name = nil) ⇒ Object



15
16
17
18
# File 'lib/iisconfig/site.rb', line 15

def name(name = nil)
  @name = name unless name.nil?
  @name
end

#path(path) ⇒ Object



24
25
26
# File 'lib/iisconfig/site.rb', line 24

def path(path)
  @path = path
end

#physical_path(path) ⇒ Object



32
33
34
# File 'lib/iisconfig/site.rb', line 32

def physical_path(path)
  @physical_path = path
end

#required_pathsObject



59
60
61
62
63
# File 'lib/iisconfig/site.rb', line 59

def required_paths
  paths = []
  paths << @physical_path
  paths
end

#virtual_directory(&block) ⇒ Object



40
41
42
# File 'lib/iisconfig/site.rb', line 40

def virtual_directory(&block)
  add_instance(@virtual_directories, IISConfig::VirtualDirectory, block)
end