Class: Hako::Scripts::NginxFront::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/hako/scripts/nginx_front.rb

Defined Under Namespace

Classes: Location

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Generator

Returns a new instance of Generator.

Parameters:

  • options (Hash)


98
99
100
101
# File 'lib/hako/scripts/nginx_front.rb', line 98

def initialize(options)
  @options = options
  @backend_port = options.fetch('backend_port')
end

Instance Method Details

#client_max_body_sizeString? (private)

Returns:

  • (String, nil)


140
141
142
# File 'lib/hako/scripts/nginx_front.rb', line 140

def client_max_body_size
  @options.fetch('client_max_body_size', nil)
end

#listen_specString (private)

Returns:

  • (String)


111
112
113
# File 'lib/hako/scripts/nginx_front.rb', line 111

def listen_spec
  "backend:#{@backend_port}"
end

#locationsHash<String, Location> (private)

Returns:



131
132
133
134
135
136
137
# File 'lib/hako/scripts/nginx_front.rb', line 131

def locations
  locs = @options.fetch('locations').dup
  locs.keys.each do |k|
    locs[k] = Location.new(locs[k])
  end
  locs
end

#nginx_conf_erbString (private)

Returns:

  • (String)


121
122
123
# File 'lib/hako/scripts/nginx_front.rb', line 121

def nginx_conf_erb
  File.join(templates_directory, 'nginx.conf.erb')
end

#nginx_location_conf_erbString (private)

Returns:

  • (String)


126
127
128
# File 'lib/hako/scripts/nginx_front.rb', line 126

def nginx_location_conf_erb
  File.join(templates_directory, 'nginx.location.conf.erb')
end

#renderString

Returns:

  • (String)


104
105
106
# File 'lib/hako/scripts/nginx_front.rb', line 104

def render
  ERB.new(File.read(nginx_conf_erb), nil, '-').result(binding)
end

#render_location(listen_spec, location) ⇒ String (private)

Parameters:

  • listen_spec (String)
  • location (Location)

Returns:

  • (String)


147
148
149
150
151
# File 'lib/hako/scripts/nginx_front.rb', line 147

def render_location(listen_spec, location)
  ERB.new(File.read(nginx_location_conf_erb), nil, '-').result(binding).each_line.map do |line|
    "    #{line}"
  end.join('')
end

#templates_directoryString (private)

Returns:

  • (String)


116
117
118
# File 'lib/hako/scripts/nginx_front.rb', line 116

def templates_directory
  File.expand_path('../../templates', __FILE__)
end