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
|
# File 'lib/puma/configuration.rb', line 135
def initialize(options={}, &blk)
@options = LeveledOptions.new(default_options, options)
@plugins = PluginLoader.new
if blk
configure(&blk)
end
end
|
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
145
146
147
|
# File 'lib/puma/configuration.rb', line 145
def options
@options
end
|
#plugins ⇒ Object
Returns the value of attribute plugins.
145
146
147
|
# File 'lib/puma/configuration.rb', line 145
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
274
275
276
277
278
279
|
# File 'lib/puma/configuration.rb', line 274
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.
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
|
# File 'lib/puma/configuration.rb', line 242
def app
found = options[:app] || load_rackup
if @options[:mode] == :tcp
require 'puma/tcp_logger'
logger = @options[:logger]
quiet = !@options[:log_requests]
return TCPLogger.new(logger, found, quiet)
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
231
232
233
|
# File 'lib/puma/configuration.rb', line 231
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
211
212
213
214
|
# File 'lib/puma/configuration.rb', line 211
def clamp
@options.shift
@options.force_defaults
end
|
147
148
149
150
|
# File 'lib/puma/configuration.rb', line 147
def configure(&blk)
@options.shift
DSL.new(@options, self)._run(&blk)
end
|
#default_options ⇒ Object
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
# File 'lib/puma/configuration.rb', line 167
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,
:persistent_timeout => Const::PERSISTENT_TIMEOUT
}
end
|
#environment ⇒ Object
Return which environment we’re running in
262
263
264
|
# File 'lib/puma/configuration.rb', line 262
def environment
@options[:environment]
end
|
#flatten ⇒ Object
158
159
160
|
# File 'lib/puma/configuration.rb', line 158
def flatten
dup.flatten!
end
|
#flatten! ⇒ Object
162
163
164
165
|
# File 'lib/puma/configuration.rb', line 162
def flatten!
@options = @options.flatten
self
end
|
#initialize_copy(other) ⇒ Object
152
153
154
155
156
|
# File 'lib/puma/configuration.rb', line 152
def initialize_copy(other)
@conf = nil
@cli_options = nil
@options = @options.dup
end
|
#load ⇒ Object
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
# File 'lib/puma/configuration.rb', line 189
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
266
267
268
|
# File 'lib/puma/configuration.rb', line 266
def load_plugin(name)
@plugins.create name
end
|
#rackup ⇒ Object
235
236
237
|
# File 'lib/puma/configuration.rb', line 235
def rackup
@options[:rackup]
end
|
#run_hooks(key, arg) ⇒ Object
270
271
272
|
# File 'lib/puma/configuration.rb', line 270
def run_hooks(key, arg)
@options.all_of(key).each { |b| b.call arg }
end
|