Branch Coverage

blib/lib/Dancer2/Plugin.pm
Criterion Covered Total %
branch 61 80 76.2


line true false branch
77 0 1 unless $self->isa("Dancer2::Plugin")
109 15 8 unless my $config_name = delete $args{'from_config'}
114 2 6 if (is_coderef($config_name))
119 7 1 if $config_name eq 1
124 4 4 defined $value ? :
133 8 15 if (my $keyword = delete $args{'plugin_keyword'})
135 6 2 if $keyword eq 1
138 1 7 ref $keyword ? :
152 0 6 unless ref $sym_ref
156 1 5 if is_arrayref($args)
181 1 65 if $name eq "no_dsl"
184 37 29 if $name eq "plugin" or $name eq "no_dsl"
188 29 0 if $name eq "app" and $caller->can("app") and not $no_dsl->{$class}
205 0 29 unless my $app = eval "${caller}::app()" || eval { do { $caller->dsl->app } }
208 0 29 unless $app->can("with_plugin")
213 0 29 unless $class->can("keywords")
265 0 5 unless $plugin_addr
279 0 5 unless $plugin_config
0 5 unless $app_plugin_config
291 2 3 if ($_[0]->isa("Dancer2::Plugin"))
301 0 2 if ($plugin->hooks->{"plugin.$plugin_class.$hook_name"})
307 0 2 unless $hook_name =~ /^plugin\.$plugin_class/
339 0 3 unless $keyword =~ /^[a-zA-Z_]+[a-zA-Z0-9_]*$/
0 3 if grep(($keyword eq $_), ("forward", "route_parameters", "encode_json", "response_header", "headers", "vars", "dancer_app", "header", "session", "send_as", "start", "uri_for_route", "done", "hook", "patch", "send_file", "prefix", "dsl", "dancer_version", "status", "mime", "uri_for", "content_type", "to_yaml", "dance", "cookie", "log", "error", "cookies", "any", "delayed", "template", "true", "send_error", "from_json", "post", "query_parameters", "upload", "pass", "decode_json", "setting", "halt", "debug", "request_data", "info", "false", "redirect", "runner", "engine", "response_headers", "request_header", "from_dumper", "push_header", "param", "var", "captures", "flush", "content", "options", "push_response_header", "set", "splat", "request", "warning", "body_parameters", "params", "app", "del", "context", "to_dumper", "put", "to_json", "psgi_app", "path", "response", "from_yaml", "prepare_app", "dancer_major_version", "to_app", "get", "config", "dirname"))
0 2 if $Dancer2::Plugin::_keywords_by_plugin->{$keyword}
0 2 unless $keyword =~ /^[a-zA-Z_]+[a-zA-Z0-9_]*$/
431 36 1 unless $no_dsl->{$caller}
462 0 37 if $@
466 19 18 if ($app_dsl_cb)
486 31 281 if $class = $caller->can("dsl")
518 1 15 unless $app_dsl_cb
535 7 5 $_[0] ? :
540 750 153 unless $plugin_module->can($keyword)
549 37 88 if $name eq "plugin_keywords"
552 37 51 if $name eq "plugin_hooks"
555 0 54 unless $$exported_app{$global->{'into'}}
588 0 2 builtin::blessed($hook) ? :
608 12 24 ref $name ? :
2 23 is_coderef($_[0]) ? :
611 0 24 ref $name ? :