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, backend_host:) ⇒ Generator

Returns a new instance of Generator.

Parameters:

  • options (Hash)


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

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

Instance Method Details

#client_max_body_sizeString? (private)

Returns:

  • (String, nil)


145
146
147
# File 'lib/hako/scripts/nginx_front.rb', line 145

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

#listen_specString (private)

Returns:

  • (String)


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

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

#locationsHash<String, Location> (private)

Returns:



136
137
138
139
140
141
142
# File 'lib/hako/scripts/nginx_front.rb', line 136

def locations
  locs = {}
  @options.fetch('locations').each do |k, v|
    locs[k] = Location.new(v)
  end
  locs
end

#nginx_conf_erbString (private)

Returns:

  • (String)


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

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

#nginx_location_conf_erbString (private)

Returns:

  • (String)


131
132
133
# File 'lib/hako/scripts/nginx_front.rb', line 131

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

#renderString

Returns:

  • (String)


109
110
111
# File 'lib/hako/scripts/nginx_front.rb', line 109

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)


152
153
154
155
156
# File 'lib/hako/scripts/nginx_front.rb', line 152

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)


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

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