Module: Puma
- Defined in:
- lib/puma.rb,
lib/puma/cli.rb,
lib/puma/dsl.rb,
lib/puma/util.rb,
lib/puma/const.rb,
lib/puma/binder.rb,
lib/puma/client.rb,
lib/puma/detect.rb,
lib/puma/events.rb,
lib/puma/plugin.rb,
lib/puma/runner.rb,
lib/puma/server.rb,
lib/puma/single.rb,
lib/puma/cluster.rb,
lib/puma/minissl.rb,
lib/puma/null_io.rb,
lib/puma/reactor.rb,
lib/puma/request.rb,
lib/puma/systemd.rb,
lib/puma/launcher.rb,
lib/puma/io_buffer.rb,
lib/puma/app/status.rb,
lib/puma/state_file.rb,
lib/puma/control_cli.rb,
lib/puma/queue_close.rb,
lib/puma/thread_pool.rb,
lib/puma/commonlogger.rb,
lib/puma/error_logger.rb,
lib/puma/rack/builder.rb,
lib/puma/configuration.rb,
lib/puma/jruby_restart.rb,
lib/puma/cluster/worker.rb,
lib/puma/json_serialization.rb,
lib/puma/cluster/worker_handle.rb,
lib/puma/minissl/context_builder.rb,
ext/puma_http11/mini_ssl.c,
ext/puma_http11/puma_http11.c
Defined Under Namespace
Modules: App, ConfigDefault, Const, JRubyRestart, JSONSerialization, MiniSSL, QueueClose, Rack, Request, Util
Classes: Binder, CLI, Client, Cluster, CommonLogger, Configuration, ConnectionError, ControlCLI, DSL, ErrorLogger, Events, HttpParser, HttpParserError, IOBuffer, Launcher, NullIO, Plugin, PluginLoader, PluginRegistry, Reactor, Runner, Server, Single, StateFile, Systemd, ThreadPool, UnknownPlugin, UnsupportedBackend, UnsupportedOption, UserFileDefaultOptions
Constant Summary
collapse
- HAS_SSL =
at present, MiniSSL::Engine is only defined in extension code (puma_http11),
not in minissl.rb
const_defined?(:MiniSSL, false) && MiniSSL.const_defined?(:Engine, false)
- HAS_UNIX_SOCKET =
Object.const_defined? :UNIXSocket
- HTTP_STATUS_CODES =
{
100 => 'Continue',
101 => 'Switching Protocols',
102 => 'Processing',
200 => 'OK',
201 => 'Created',
202 => 'Accepted',
203 => 'Non-Authoritative Information',
204 => 'No Content',
205 => 'Reset Content',
206 => 'Partial Content',
207 => 'Multi-Status',
208 => 'Already Reported',
226 => 'IM Used',
300 => 'Multiple Choices',
301 => 'Moved Permanently',
302 => 'Found',
303 => 'See Other',
304 => 'Not Modified',
305 => 'Use Proxy',
307 => 'Temporary Redirect',
308 => 'Permanent Redirect',
400 => 'Bad Request',
401 => 'Unauthorized',
402 => 'Payment Required',
403 => 'Forbidden',
404 => 'Not Found',
405 => 'Method Not Allowed',
406 => 'Not Acceptable',
407 => 'Proxy Authentication Required',
408 => 'Request Timeout',
409 => 'Conflict',
410 => 'Gone',
411 => 'Length Required',
412 => 'Precondition Failed',
413 => 'Payload Too Large',
414 => 'URI Too Long',
415 => 'Unsupported Media Type',
416 => 'Range Not Satisfiable',
417 => 'Expectation Failed',
418 => 'I\'m A Teapot',
421 => 'Misdirected Request',
422 => 'Unprocessable Entity',
423 => 'Locked',
424 => 'Failed Dependency',
426 => 'Upgrade Required',
428 => 'Precondition Required',
429 => 'Too Many Requests',
431 => 'Request Header Fields Too Large',
451 => 'Unavailable For Legal Reasons',
500 => 'Internal Server Error',
501 => 'Not Implemented',
502 => 'Bad Gateway',
503 => 'Service Unavailable',
504 => 'Gateway Timeout',
505 => 'HTTP Version Not Supported',
506 => 'Variant Also Negotiates',
507 => 'Insufficient Storage',
508 => 'Loop Detected',
510 => 'Not Extended',
511 => 'Network Authentication Required'
}
- STATUS_WITH_NO_ENTITY_BODY =
For some HTTP status codes the client only expects headers.
{
204 => true,
205 => true,
304 => true
}
- HAS_FORK =
::Process.respond_to? :fork
- IS_JRUBY =
Object.const_defined? :JRUBY_VERSION
- IS_WINDOWS =
!!(RUBY_PLATFORM =~ /mswin|ming|cygwin/ ||
IS_JRUBY && RUBY_DESCRIPTION =~ /mswin/)
- IS_MRI =
(RUBY_ENGINE == 'ruby' || RUBY_ENGINE.nil?)
- Plugins =
PluginRegistry.new
Class Attribute Summary collapse
-
.cli_config ⇒ Object
The CLI exports its Puma::Configuration object here to allow apps to pick it up.
Instance Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.cli_config ⇒ Object
The CLI exports its Puma::Configuration object here to allow
apps to pick it up. An app needs to use it conditionally though
since it is not set if the app is launched via another
mechanism than the CLI class.
18
19
20
|
# File 'lib/puma/cli.rb', line 18
def cli_config
@cli_config
end
|
Instance Attribute Details
#stats_hash ⇒ Object
68
69
70
|
# File 'lib/puma.rb', line 68
def self.stats_hash
@get_stats.stats
end
|
#stats_object ⇒ Object
62
63
64
|
# File 'lib/puma.rb', line 62
def self.stats
Puma::JSONSerialization.generate @get_stats.stats
end
|
Class Method Details
.abstract_unix_socket? ⇒ Boolean
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/puma.rb', line 42
def self.abstract_unix_socket?
@abstract_unix ||=
if HAS_UNIX_SOCKET
begin
::UNIXServer.new("\0puma.temp.unix").close
true
rescue ArgumentError
false
end
else
false
end
end
|
.forkable? ⇒ Boolean
33
34
35
|
# File 'lib/puma/detect.rb', line 33
def self.forkable?
HAS_FORK
end
|
.jruby? ⇒ Boolean
19
20
21
|
# File 'lib/puma/detect.rb', line 19
def self.jruby?
IS_JRUBY
end
|
.mri? ⇒ Boolean
28
29
30
|
# File 'lib/puma/detect.rb', line 28
def self.mri?
IS_MRI
end
|
.set_thread_name(name) ⇒ Object
Thread name is new in Ruby 2.3
73
74
75
76
|
# File 'lib/puma.rb', line 73
def self.set_thread_name(name)
return unless Thread.current.respond_to?(:name=)
Thread.current.name = "puma #{name}"
end
|
.ssl? ⇒ Boolean
38
39
40
|
# File 'lib/puma.rb', line 38
def self.ssl?
HAS_SSL
end
|
.stats ⇒ Object
62
63
64
|
# File 'lib/puma.rb', line 62
def self.stats
Puma::JSONSerialization.generate @get_stats.stats
end
|
.stats_hash ⇒ Object
68
69
70
|
# File 'lib/puma.rb', line 68
def self.stats_hash
@get_stats.stats
end
|
.stats_object=(val) ⇒ Object
57
58
59
|
# File 'lib/puma.rb', line 57
def self.stats_object=(val)
@get_stats = val
end
|
.windows? ⇒ Boolean
23
24
25
|
# File 'lib/puma/detect.rb', line 23
def self.windows?
IS_WINDOWS
end
|