Class: Puma::Configuration
- Inherits:
-
Object
- Object
- Puma::Configuration
show all
- Includes:
- ConfigDefault
- Defined in:
- lib/puma/configuration.rb
Defined Under Namespace
Classes: ConfigMiddleware
Constant Summary
Puma::ConfigDefault::DefaultRackup, Puma::ConfigDefault::DefaultTCPHost, Puma::ConfigDefault::DefaultTCPPort, Puma::ConfigDefault::DefaultWorkerShutdownTimeout, Puma::ConfigDefault::DefaultWorkerTimeout
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}, &blk) ⇒ Configuration
Returns a new instance of Configuration.
135
136
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/puma/configuration.rb', line 135
def initialize(options={}, &blk)
@options = LeveledOptions.new(default_options)
@plugins = PluginLoader.new
if blk
configure(&blk)
end
end
|
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
148
149
150
|
# File 'lib/puma/configuration.rb', line 148
def options
@options
end
|
#plugins ⇒ Object
Returns the value of attribute plugins.
148
149
150
|
# File 'lib/puma/configuration.rb', line 148
def plugins
@plugins
end
|
Class Method Details
.from_file(path) ⇒ Object
127
128
129
130
131
132
133
|
# File 'lib/puma/configuration.rb', line 127
def self.from_file(path)
cfg = new
DSL.new(cfg.options, cfg)._load_from path
return cfg
end
|
.temp_path ⇒ Object
275
276
277
278
279
280
|
# File 'lib/puma/configuration.rb', line 275
def self.temp_path
require 'tmpdir'
t = (Time.now.to_f * 1000).to_i
"#{Dir.tmpdir}/puma-status-#{t}-#{$$}"
end
|
Instance Method Details
#app ⇒ Object
Load the specified rackup file, pull options from the rackup file, and set @app.
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
|
# File 'lib/puma/configuration.rb', line 244
def app
found = options[:app] || load_rackup
if @options[:mode] == :tcp
require 'puma/tcp_logger'
logger = @options[:logger]
return TCPLogger.new(logger, found, @options[:log_requests])
end
if @options[:log_requests]
logger = @options[:logger]
found = CommonLogger.new(found, logger)
end
ConfigMiddleware.new(self, found)
end
|
Indicate if there is a properly configured app
233
234
235
|
# File 'lib/puma/configuration.rb', line 233
def app_configured?
@options[:app] || File.exist?(rackup)
end
|
#clamp ⇒ Object
Call once all configuration (included from rackup files) is loaded to flesh out any defaults
213
214
215
216
|
# File 'lib/puma/configuration.rb', line 213
def clamp
@options.shift
@options.force_defaults
end
|
150
151
152
153
|
# File 'lib/puma/configuration.rb', line 150
def configure(&blk)
@options.shift
DSL.new(@options, self)._run(&blk)
end
|
#default_options ⇒ Object
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
# File 'lib/puma/configuration.rb', line 170
def default_options
{
:min_threads => 0,
:max_threads => 16,
:log_requests => false,
:debug => false,
:binds => ["tcp://#{DefaultTCPHost}:#{DefaultTCPPort}"],
:workers => 0,
:daemon => false,
:mode => :http,
:worker_timeout => DefaultWorkerTimeout,
:worker_boot_timeout => DefaultWorkerTimeout,
:worker_shutdown_timeout => DefaultWorkerShutdownTimeout,
:remote_address => :socket,
:tag => method(:infer_tag),
:environment => lambda { ENV['RACK_ENV'] || "development" },
:rackup => DefaultRackup,
:logger => STDOUT
}
end
|
#environment ⇒ Object
Return which environment we’re running in
263
264
265
|
# File 'lib/puma/configuration.rb', line 263
def environment
@options[:environment]
end
|
#flatten ⇒ Object
161
162
163
|
# File 'lib/puma/configuration.rb', line 161
def flatten
dup.flatten!
end
|
#flatten! ⇒ Object
165
166
167
168
|
# File 'lib/puma/configuration.rb', line 165
def flatten!
@options = @options.flatten
self
end
|
#initialize_copy(other) ⇒ Object
155
156
157
158
159
|
# File 'lib/puma/configuration.rb', line 155
def initialize_copy(other)
@conf = nil
@cli_options = nil
@options = @options.dup
end
|
#load ⇒ Object
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
# File 'lib/puma/configuration.rb', line 191
def load
files = @options.all_of(:config_files)
if files.empty?
imp = %W(config/puma/#{@options[:environment]}.rb config/puma.rb).find { |f|
File.exist?(f)
}
files << imp
elsif files == ["-"]
files = []
end
files.each do |f|
@options.shift
DSL.load @options, self, f
end
end
|
#load_plugin(name) ⇒ Object
267
268
269
|
# File 'lib/puma/configuration.rb', line 267
def load_plugin(name)
@plugins.create name
end
|
#rackup ⇒ Object
237
238
239
|
# File 'lib/puma/configuration.rb', line 237
def rackup
@options[:rackup]
end
|
#run_hooks(key, arg) ⇒ Object
271
272
273
|
# File 'lib/puma/configuration.rb', line 271
def run_hooks(key, arg)
@options.all_of(key).each { |b| b.call arg }
end
|