Skip to content

Instantly share code, notes, and snippets.

@hitode909
Last active October 12, 2015 09:22
Show Gist options
  • Save hitode909/ce22c46004f2ff1dac73 to your computer and use it in GitHub Desktop.
Save hitode909/ce22c46004f2ff1dac73 to your computer and use it in GitHub Desktop.
Output example of package2plantumlclassdiagram
@startuml
class HTTP::Message::PSGI {
{static} new($content, $chunked)
+ req_to_psgi()
+ res_from_psgi($psgi_res)
+ HTTP::Request::to_psgi()
+ HTTP::Response::from_psgi()
+ read()
+ close()
- _res_from_psgi($status, $headers, $body)
}
class HTTP::Server::PSGI {
{static} new(%args)
+ BEGIN()
+ run($app)
+ prepare_socket_class($args)
+ setup_listener()
+ accept_loop($app)
+ handle_connection($env, $conn, $app)
+ do_timeout($cb, $timeout)
+ read_timeout($sock, $buf, $len, $off, $timeout)
+ write_timeout($sock, $buf, $len, $off, $timeout)
+ write_all($sock, $buf, $timeout)
- _handle_response($res, $conn)
- _encode()
}
class Plack {
}
class Plack::App::CGIBin {
+ allow_path_info()
+ would_exec($file)
+ exec_cb_default($file)
+ shebang_for($file)
+ serve_path($env, $file)
}
class Plack::App::Cascade {
+ add()
+ prepare_app()
+ call($env)
}
class Plack::App::Directory {
+ should_handle($file)
+ return_dir_redirect($env)
+ serve_path($env, $dir, $fullpath)
}
class Plack::App::File {
+ should_handle($file)
+ call()
+ locate_file($env)
+ allow_path_info()
+ serve_path($env, $file)
+ return_403()
+ return_400()
+ return_404()
}
class Plack::App::PSGIBin {
+ allow_path_info()
+ serve_path($env, $file)
}
class Plack::App::URLMap {
+ mount()
+ map()
+ prepare_app()
+ call($env)
}
class Plack::App::WrapCGI {
+ slurp_fh()
+ prepare_app()
+ call($env)
}
class Plack::Builder {
+ new()
+ add_middleware($mw, @args)
+ add_middleware_if($cond, $mw, @args)
+ to_app($app)
+ wrap($app)
+ enable()
+ enable_if()
+ mount()
+ builder()
- _mount($location, $app)
}
class Plack::Component {
+ new()
+ to_app_auto()
+ mk_accessors()
+ prepare_app()
+ to_app()
+ response_cb($res, $cb)
}
class Plack::HTTPParser {
}
class Plack::HTTPParser::PP {
+ parse_http_request($chunk, $env)
- _parse_header($chunk, $eoh, $env)
}
class Plack::Handler {
}
class Plack::Handler::Apache1 {
{static} load_app($app)
{static} call_app($r, $app)
+ new()
+ preload()
+ handler()
- _handle_response($r, $res)
}
class Plack::Handler::Apache2 {
{static} load_app($app)
{static} call_app($r, $app)
{static} fixup_path($r, $env)
+ new()
+ preload()
+ handler()
- _handle_response($r, $res)
}
class Plack::Handler::Apache2::Registry {
{static} fixup_path($r, $env)
+ handler()
}
class Plack::Handler::CGI {
+ new()
+ run($app)
+ setup_env($override_env)
+ new()
+ write()
+ close()
- _handle_response($res)
}
class Plack::Handler::FCGI {
+ new()
+ run($app)
+ daemon_fork()
+ daemon_detach()
- _handle_response($res)
}
class Plack::Handler::HTTP::Server::PSGI {
{static} new(%args)
+ run($app)
- _server()
}
class Plack::Handler::Standalone {
}
class Plack::LWPish {
+ new()
+ request($req)
}
class Plack::Loader {
{static} auto(@args)
{static} load($server, @args)
+ new()
+ watch()
+ preload_app($builder)
+ guess()
+ env()
+ run($server, $builder)
}
class Plack::Loader::Delayed {
+ preload_app($builder)
+ run($server)
}
class Plack::Loader::Restarter {
{static} new($runner)
+ preload_app($builder)
+ watch(@dir)
+ valid_file($file)
+ run($server)
- _fork_and_start($server)
- _kill_child()
}
class Plack::Loader::Shotgun {
+ preload_app($builder)
+ run($server)
}
class Plack::MIME {
{static} mime_type($file)
{static} set_fallback($cb)
+ add_type()
}
class Plack::Middleware {
+ wrap($app, @args)
}
class Plack::Middleware::AccessLog {
+ prepare_app()
+ call()
+ log_line($status, $headers, $env, $opts)
}
class Plack::Middleware::AccessLog::Timed {
+ call()
}
class Plack::Middleware::Auth::Basic {
+ prepare_app()
+ call($env)
+ unauthorized()
}
class Plack::Middleware::BufferedStreaming {
+ call($env)
}
class Plack::Middleware::Chunked {
+ call($env)
}
class Plack::Middleware::Conditional {
+ prepare_app()
+ call($env)
}
class Plack::Middleware::ConditionalGET {
+ call()
+ etag_matches($h, $env)
+ not_modified_since($h, $env)
- _value()
}
class Plack::Middleware::ContentLength {
+ call()
}
class Plack::Middleware::ContentMD5 {
+ call()
}
class Plack::Middleware::ErrorDocument {
+ call()
}
class Plack::Middleware::HTTPExceptions {
+ prepare_app()
+ call($env)
+ transform_error($e, $env)
}
class Plack::Middleware::Head {
+ call($env)
}
class Plack::Middleware::IIS6ScriptNameFix {
+ call($env)
}
class Plack::Middleware::IIS7KeepAliveFix {
+ call($env)
}
class Plack::Middleware::JSONP {
+ prepare_app()
+ call($env)
}
class Plack::Middleware::LighttpdScriptNameFix {
+ prepare_app()
+ call($env)
}
class Plack::Middleware::Lint {
+ wrap($app)
+ call()
+ validate_env($env)
+ is_possibly_fh()
+ validate_res($res, $streaming)
- _has_wide_char()
}
class Plack::Middleware::Log4perl {
+ prepare_app()
+ call($env)
}
class Plack::Middleware::LogDispatch {
+ prepare_app()
+ call($env)
}
class Plack::Middleware::NullLogger {
+ call($env)
}
class Plack::Middleware::RearrangeHeaders {
+ call()
}
class Plack::Middleware::Recursive {
{static} new($path)
{static} throw(@args)
+ call($env)
+ recurse_callback($env, $include)
+ path()
+ as_string()
}
class Plack::Middleware::Refresh {
+ prepare_app()
+ call($env)
}
class Plack::Middleware::Runtime {
+ call($env)
}
class Plack::Middleware::SimpleContentFilter {
+ call()
}
class Plack::Middleware::SimpleLogger {
+ call($env)
+ format_time()
+ format_message($level, $message)
}
class Plack::Middleware::StackTrace {
+ call($env)
+ no_trace_error()
+ munge_error($err, $caller)
+ utf8_safe()
}
class Plack::Middleware::Static {
+ call()
- _handle_static($env)
}
class Plack::Middleware::XFramework {
+ call()
}
class Plack::Middleware::XSendfile {
+ call()
+ map_accel_path($env, $path)
- _variation($env)
}
class Plack::Request {
{static} new($env)
+ env()
+ address()
+ remote_host()
+ protocol()
+ method()
+ port()
+ user()
+ request_uri()
+ path_info()
+ path()
+ query_string()
+ script_name()
+ scheme()
+ secure()
+ body()
+ input()
+ content_length()
+ content_type()
+ session()
+ session_options()
+ logger()
+ cookies()
+ query_parameters()
+ content()
+ raw_body()
+ headers()
+ content_encoding()
+ header()
+ referer()
+ user_agent()
+ body_parameters()
+ parameters()
+ uploads()
+ param()
+ upload()
+ uri()
+ base()
+ new_response()
- _parse_query()
- _uri_base()
- _parse_request_body()
- _make_upload($upload)
}
class Plack::Request::Upload {
{static} new(%args)
+ filename()
+ headers()
+ size()
+ tempname()
+ path()
+ content_type()
+ type()
+ basename()
}
class Plack::Response {
{static} new($rc, $headers, $content)
+ code()
+ content()
+ headers()
+ cookies()
+ header()
+ content_length()
+ content_type()
+ content_encoding()
+ location()
+ redirect()
+ finalize()
+ to_app()
- _body()
- _finalize_cookies($headers)
}
class Plack::Runner {
+ new()
+ build()
+ parse_options()
+ set_options()
+ mangle_host_port_socket($host, $port, $socket, @listen)
+ version_cb()
+ setup()
+ locate_app(@args)
+ watch(@dir)
+ apply_middleware($app, $class, @args)
+ prepare_devel($app)
+ loader()
+ load_server($loader)
+ run()
}
class Plack::TempBuffer {
+ new()
}
class Plack::Test {
{static} create($app, @args)
+ test_psgi()
}
class Plack::Test::MockHTTP {
{static} new($app)
+ request($req)
}
class Plack::Test::Server {
{static} new($app, %args)
+ port()
+ request($req)
}
class Plack::Test::Suite {
{static} runtests($runner)
{static} run_server_tests($server, $server_port, $http_port, %args)
+ CalledClose::new()
+ CalledClose::getline()
+ CalledClose::close()
+ test_app_handler()
}
class Plack::Util {
{static} load_class($prefix)
+ TRUE()
+ FALSE()
+ is_real_fh()
+ set_io_path($fh, $path)
+ content_length()
+ foreach($body, $cb)
+ class_to_file()
+ load_psgi()
+ run_app($app, $env)
+ headers()
+ header_iter($headers, $code)
+ header_get($headers, $key)
+ header_set($headers, $key, $val)
+ header_push($headers, $key, $val)
+ header_exists($headers, $key)
+ header_remove($headers, $key)
+ status_with_no_entity_body()
+ encode_html()
+ inline_object()
+ response_cb($res, $cb)
+ can()
+ AUTOLOAD()
+ DESTROY()
+ path()
- _load_sandbox()
}
class Plack::Util::Accessor {
+ import()
+ mk_accessors()
}
Exporter <|-- HTTP::Message::PSGI
Plack::App::File <|-- Plack::App::CGIBin
Plack::Component <|-- Plack::App::Cascade
Plack::App::File <|-- Plack::App::Directory
Plack::Component <|-- Plack::App::File
Plack::App::File <|-- Plack::App::PSGIBin
Plack::Component <|-- Plack::App::URLMap
Plack::Component <|-- Plack::App::WrapCGI
Exporter <|-- Plack::Builder
Exporter <|-- Plack::HTTPParser
Plack::Handler::Apache2 <|-- Plack::Handler::Apache2::Registry
HTTP::Server::PSGI <|-- Plack::Handler::HTTP::Server::PSGI
Plack::Handler::HTTP::Server::PSGI <|-- Plack::Handler::Standalone
Plack::Loader <|-- Plack::Loader::Delayed
Plack::Loader <|-- Plack::Loader::Restarter
Plack::Loader <|-- Plack::Loader::Shotgun
Plack::Component <|-- Plack::Middleware
Plack::Middleware <|-- Plack::Middleware::AccessLog
Plack::Middleware::AccessLog <|-- Plack::Middleware::AccessLog::Timed
Plack::Middleware <|-- Plack::Middleware::Auth::Basic
Plack::Middleware <|-- Plack::Middleware::BufferedStreaming
Plack::Middleware <|-- Plack::Middleware::Chunked
Plack::Middleware <|-- Plack::Middleware::Conditional
Plack::Middleware <|-- Plack::Middleware::ConditionalGET
Plack::Middleware <|-- Plack::Middleware::ContentLength
Plack::Middleware <|-- Plack::Middleware::ContentMD5
Plack::Middleware <|-- Plack::Middleware::ErrorDocument
Plack::Middleware <|-- Plack::Middleware::HTTPExceptions
Plack::Middleware <|-- Plack::Middleware::Head
Plack::Middleware <|-- Plack::Middleware::IIS6ScriptNameFix
Plack::Middleware <|-- Plack::Middleware::IIS7KeepAliveFix
Plack::Middleware <|-- Plack::Middleware::JSONP
Plack::Middleware <|-- Plack::Middleware::LighttpdScriptNameFix
Plack::Middleware <|-- Plack::Middleware::Lint
Plack::Middleware <|-- Plack::Middleware::Log4perl
Plack::Middleware <|-- Plack::Middleware::LogDispatch
Plack::Middleware <|-- Plack::Middleware::NullLogger
Plack::Middleware <|-- Plack::Middleware::RearrangeHeaders
Plack::Middleware <|-- Plack::Middleware::Recursive
Plack::Middleware <|-- Plack::Middleware::Refresh
Plack::Middleware <|-- Plack::Middleware::Runtime
Plack::Middleware <|-- Plack::Middleware::SimpleContentFilter
Plack::Middleware <|-- Plack::Middleware::SimpleLogger
Plack::Middleware <|-- Plack::Middleware::StackTrace
Plack::Middleware <|-- Plack::Middleware::Static
Plack::Middleware <|-- Plack::Middleware::XFramework
Plack::Middleware <|-- Plack::Middleware::XSendfile
Stream::Buffered <|-- Plack::TempBuffer
Exporter <|-- Plack::Test
IO::Handle <|-- Plack::Util
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment