Class: Hako::Scripts::NginxFront::Generator
- Inherits:
-
Object
- Object
- Hako::Scripts::NginxFront::Generator
- Defined in:
- lib/hako/scripts/nginx_front.rb
Defined Under Namespace
Classes: Location
Instance Method Summary collapse
- #client_max_body_size ⇒ String? private
-
#initialize(options, backend_host:) ⇒ Generator
constructor
A new instance of Generator.
- #listen_spec ⇒ String private
- #locations ⇒ Hash<String, Location> private
- #nginx_conf_erb ⇒ String private
- #nginx_location_conf_erb ⇒ String private
- #render ⇒ String
- #render_location(listen_spec, location) ⇒ String private
- #templates_directory ⇒ String private
Constructor Details
#initialize(options, backend_host:) ⇒ Generator
Returns a new instance of Generator.
102 103 104 105 106 |
# File 'lib/hako/scripts/nginx_front.rb', line 102 def initialize(, backend_host:) @options = @backend_host = backend_host @backend_port = .fetch('backend_port') end |
Instance Method Details
#client_max_body_size ⇒ String? (private)
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_spec ⇒ String (private)
116 117 118 |
# File 'lib/hako/scripts/nginx_front.rb', line 116 def listen_spec "#{@backend_host}:#{@backend_port}" end |
#locations ⇒ Hash<String, Location> (private)
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_erb ⇒ String (private)
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_erb ⇒ String (private)
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 |
#render ⇒ String
109 110 111 |
# File 'lib/hako/scripts/nginx_front.rb', line 109 def render ERB.new(File.read(nginx_conf_erb), trim_mode: '-').result(binding) end |
#render_location(listen_spec, location) ⇒ String (private)
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), trim_mode: '-').result(binding).each_line.map do |line| " #{line}" end.join('') end |
#templates_directory ⇒ String (private)
121 122 123 |
# File 'lib/hako/scripts/nginx_front.rb', line 121 def templates_directory File.('../templates', __dir__) end |