Class: WebServerConfigGenerator::NginxConf

Inherits:
Object
  • Object
show all
Defined in:
lib/web_server_config_generator/nginx_conf.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ NginxConf

Returns a new instance of NginxConf.

Raises:

  • (ArgumentError)


3
4
5
6
7
# File 'lib/web_server_config_generator/nginx_conf.rb', line 3

def initialize(options)
  @options = options
  raise ArgumentError.new("Must supply port, server_names, root, and environment") unless
    options[:port] && options[:server_names] && options[:root] && options[:environment]
end

Instance Method Details

#base_uri_linesObject



13
14
15
# File 'lib/web_server_config_generator/nginx_conf.rb', line 13

def base_uri_lines
  @options[:base_uri_names] && @options[:base_uri_names].map { |n| "        passenger_base_uri /#{n};\n" }.join
end

#contentsObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/web_server_config_generator/nginx_conf.rb', line 17

def contents
  server_names = @options[:server_names].map { |h| "#{h} *.#{h}" }.join(" ")
  "server {\n    listen \#{@options[:port]};\n    listen 80;\n    server_name \#{server_names};\n    root \#{@options[:root]};\n    passenger_enabled on;\n\n\#{rewrite_line}\n    rails_env \#{@options[:environment]};\n    rails_spawn_method conservative;\n\n\#{base_uri_lines}\n    client_max_body_size 100m;\n    client_body_timeout   300;\n}\n"
end

#rewrite_lineObject



9
10
11
# File 'lib/web_server_config_generator/nginx_conf.rb', line 9

def rewrite_line
  @options[:sub_uri_root_app] && "        rewrite ^/$ /#{@options[:sub_uri_root_app]} redirect;"
end