view release on metacpan or search on metacpan
0.205001  2017-07-11 08:03:21-05:00 America/Chicago
    [ BUG FIXES ]
    * GH #1332: Add check for old version of HTTP::XSCookies (Peter Mottram -
      SysPete)
    * GH #1336: Fix warnings on 5.10 and below. (Sawyer X)
    * GH #1347: Add Perl versions 5.22-5.26 and appveyor to Travis-CI
      configuration (Dave Jacoby)
    [ ENHANCEMENTS ]
    * GH #1281: Use Ref::Util in Core for all reference checks (Mickey 
      Nasriachi)
    * GH #1338: Add message explaining how to run newly-created application
      (Jonathan Cast)
    [ DOCUMENTATION ]
    * GH #1334: Fix prefix example in Cookbook (Abdullah Diab)
    * GH #1335: Add missing word in request->host docs (Glenn Fowler)
    * GH #1337: Fix link in SEE ALSO section of Dancer2::Core::Types (Stefan
      Hornburg - Racke)
    * GH #1341: Clarify plugin documentation (Stefan Hornburg - Racke)
            "MIME::Base64" : "3.13",
            "Module::Pluggable" : "0",
            "Module::Runtime" : "0",
            "Moo" : "2.000000",
            "Moo::Role" : "0",
            "POSIX" : "0",
            "Path::Tiny" : "0",
            "Plack" : "1.0040",
            "Plack::Middleware::FixMissingBodyInRedirect" : "0",
            "Plack::Middleware::RemoveRedundantBody" : "0",
            "Ref::Util" : "0",
            "Role::Tiny" : "2.000000",
            "Safe::Isa" : "0",
            "Sub::Quote" : "0",
            "Sub::Util" : "0",
            "Template" : "0",
            "Template::Tiny" : "1.16",
            "Test::Builder" : "0",
            "Test::More" : "0.92",
            "Type::Tiny" : "1.000006",
            "Types::Standard" : "0",
  MIME::Base64: '3.13'
  Module::Pluggable: '0'
  Module::Runtime: '0'
  Moo: '2.000000'
  Moo::Role: '0'
  POSIX: '0'
  Path::Tiny: '0'
  Plack: '1.0040'
  Plack::Middleware::FixMissingBodyInRedirect: '0'
  Plack::Middleware::RemoveRedundantBody: '0'
  Ref::Util: '0'
  Role::Tiny: '2.000000'
  Safe::Isa: '0'
  Sub::Quote: '0'
  Sub::Util: '0'
  Template: '0'
  Template::Tiny: '1.16'
  Test::Builder: '0'
  Test::More: '0.92'
  Type::Tiny: '1.000006'
  Types::Standard: '0'
Makefile.PL view on Meta::CPAN
    "MIME::Base64" => "3.13",
    "Module::Pluggable" => 0,
    "Module::Runtime" => 0,
    "Moo" => "2.000000",
    "Moo::Role" => 0,
    "POSIX" => 0,
    "Path::Tiny" => 0,
    "Plack" => "1.0040",
    "Plack::Middleware::FixMissingBodyInRedirect" => 0,
    "Plack::Middleware::RemoveRedundantBody" => 0,
    "Ref::Util" => 0,
    "Role::Tiny" => "2.000000",
    "Safe::Isa" => 0,
    "Sub::Quote" => 0,
    "Sub::Util" => 0,
    "Template" => 0,
    "Template::Tiny" => "1.16",
    "Test::Builder" => 0,
    "Test::More" => "0.92",
    "Type::Tiny" => "1.000006",
    "Types::Standard" => 0,
Makefile.PL view on Meta::CPAN
  "Module::Pluggable" => 0,
  "Module::Runtime" => 0,
  "Moo" => "2.000000",
  "Moo::Role" => 0,
  "POSIX" => 0,
  "Path::Tiny" => 0,
  "Plack" => "1.0040",
  "Plack::Middleware::FixMissingBodyInRedirect" => 0,
  "Plack::Middleware::RemoveRedundantBody" => 0,
  "Pod::Simple::SimpleTree" => 0,
  "Ref::Util" => 0,
  "Role::Tiny" => "2.000000",
  "Safe::Isa" => 0,
  "Sub::Quote" => 0,
  "Sub::Util" => 0,
  "Template" => 0,
  "Template::Tiny" => "1.16",
  "Test::Builder" => 0,
  "Test::EOL" => 0,
  "Test::Exception" => 0,
  "Test::Fatal" => 0,
requires 'MIME::Base64', '3.13'; # 3.13 has the URL safe variants
requires 'Module::Runtime';
requires 'Moo', '2.000000';
requires 'Moo::Role';
requires 'parent';
requires 'Path::Tiny';
requires 'Plack', '1.0040';
requires 'Plack::Middleware::FixMissingBodyInRedirect';
requires 'Plack::Middleware::RemoveRedundantBody';
requires 'POSIX';
requires 'Ref::Util';
requires 'Safe::Isa';
requires 'Sub::Quote';
requires 'Template';
requires 'Template::Tiny', '1.16';
requires 'Test::Builder';
requires 'Test::More';
requires 'Types::Standard';
requires 'Type::Tiny', '1.000006';
requires 'URI::Escape';
requires 'CLI::Osprey';
lib/Dancer2/Core/App.pm view on Meta::CPAN
$Dancer2::Core::App::VERSION = '2.0.1';
use Moo;
use Carp               qw<croak carp>;
use Scalar::Util       'blessed';
use List::Util         ();
use Module::Runtime    'is_module_name';
use Safe::Isa;
use Sub::Quote;
use File::Spec;
use Module::Runtime    qw< require_module use_module >;
use Ref::Util          qw< is_ref is_arrayref is_globref is_scalarref is_regexpref >;
use Sub::Util          qw/ set_subname subname /;
use Plack::App::File;
use Plack::Middleware::FixMissingBodyInRedirect;
use Plack::Middleware::Head;
use Plack::Middleware::Conditional;
use Plack::Middleware::ConditionalGET;
use Dancer2::FileUtils 'path';
use Dancer2::ConfigReader;
lib/Dancer2/Core/Cookie.pm view on Meta::CPAN
package Dancer2::Core::Cookie;
# ABSTRACT: A cookie representing class
$Dancer2::Core::Cookie::VERSION = '2.0.1';
use Moo;
use URI::Escape;
use Dancer2::Core::Types;
use Dancer2::Core::Time;
use Carp 'croak';
use Ref::Util qw< is_arrayref is_hashref >;
use overload '""' => \&_get_value;
BEGIN {
    my $try_xs =
        exists($ENV{PERL_HTTP_XSCOOKIES}) ? !!$ENV{PERL_HTTP_XSCOOKIES} :
        exists($ENV{PERL_ONLY})           ?  !$ENV{PERL_ONLY} :
        1;
    my $use_xs = 0;
    $try_xs and eval {
lib/Dancer2/Core/DSL.pm view on Meta::CPAN
# ABSTRACT: Dancer2's Domain Specific Language (DSL)
package Dancer2::Core::DSL;
$Dancer2::Core::DSL::VERSION = '2.0.1';
use Moo;
use Carp;
use Module::Runtime 'require_module';
use Ref::Util qw< is_arrayref is_hashref >;
use Dancer2::Core::Hook;
use Dancer2::FileUtils;
use Dancer2::Core::Response::Delayed;
with 'Dancer2::Core::Role::DSL';
sub hook_aliases { +{} }
sub supported_hooks { () }
sub _add_postponed_plugin_hooks {
lib/Dancer2/Core/Error.pm view on Meta::CPAN
# ABSTRACT: Class representing fatal errors
$Dancer2::Core::Error::VERSION = '2.0.1';
use Moo;
use Carp;
use Dancer2::Core::Types;
use Dancer2::Core::HTTP;
use Data::Dumper;
use Dancer2::FileUtils qw/path open_file/;
use Sub::Quote;
use Module::Runtime qw/ require_module use_module /;
use Ref::Util qw< is_hashref >;
use Clone qw(clone);
has app => (
    is        => 'ro',
    isa       => InstanceOf['Dancer2::Core::App'],
    predicate => 'has_app',
);
has show_stacktrace => (
    is      => 'ro',
lib/Dancer2/Core/Request.pm view on Meta::CPAN
use strict;
use warnings;
use parent 'Plack::Request';
use Carp;
use Encode;
use URI;
use URI::Escape;
use Safe::Isa;
use Hash::MultiValue;
use Ref::Util qw< is_ref is_arrayref is_hashref is_coderef >;
use Dancer2::Core::Types;
use Dancer2::Core::Request::Upload;
use Dancer2::Core::Cookie;
# add an attribute for each HTTP_* variables
# (HOST is managed manually)
my @http_env_keys = (qw/
    accept_charset
    accept_encoding
lib/Dancer2/Core/Role/SessionFactory.pm view on Meta::CPAN
use Moo::Role;
with 'Dancer2::Core::Role::Engine';
use Carp 'croak';
use Dancer2::Core::Session;
use Dancer2::Core::Types;
use Digest::SHA 'sha1';
use List::Util 'shuffle';
use MIME::Base64 'encode_base64url';
use Module::Runtime 'require_module';
use Ref::Util qw< is_ref is_arrayref is_hashref >;
sub hook_aliases { +{} }
sub supported_hooks {
    qw/
      engine.session.before_retrieve
      engine.session.after_retrieve
      engine.session.before_create
      engine.session.after_create
lib/Dancer2/Core/Role/Template.pm view on Meta::CPAN
# ABSTRACT: Role for template engines
package Dancer2::Core::Role::Template;
$Dancer2::Core::Role::Template::VERSION = '2.0.1';
use Dancer2::Core::Types;
use Dancer2::FileUtils 'path';
use Carp 'croak';
use Ref::Util qw< is_ref >;
use Moo::Role;
with 'Dancer2::Core::Role::Engine';
sub hook_aliases {
    {
        before_template_render => 'engine.template.before_render',
        after_template_render  => 'engine.template.after_render',
        before_layout_render   => 'engine.template.before_layout_render',
        after_layout_render    => 'engine.template.after_layout_render',
lib/Dancer2/Core/Route.pm view on Meta::CPAN
package Dancer2::Core::Route;
# ABSTRACT: Dancer2's route handler
$Dancer2::Core::Route::VERSION = '2.0.1';
use Moo;
use Dancer2::Core::Types;
use Module::Runtime 'use_module';
use Carp 'croak';
use List::Util 'first';
use Scalar::Util 'blessed';
use Ref::Util qw< is_regexpref >;
use Type::Registry;
our ( $REQUEST, $RESPONSE, $RESPONDER, $WRITER, $ERROR_HANDLER );
has name => (
    is        => 'ro',
    isa       => Str,
    predicate => 'has_name',
);
lib/Dancer2/Core/Runner.pm view on Meta::CPAN
package Dancer2::Core::Runner;
# ABSTRACT: Top-layer class to start a dancer app
$Dancer2::Core::Runner::VERSION = '2.0.1';
use Moo;
use Carp 'croak';
use Module::Runtime 'require_module';
use Dancer2::Core::MIME;
use Dancer2::Core::Types;
use Dancer2::Core::Dispatcher;
use Plack::Builder qw();
use Ref::Util qw< is_ref is_regexpref >;
# Hashref of configurable items for the runner.
# Defaults come from ENV vars. Updated via global triggers
# from app configs.
has config => (
    is      => 'ro',
    isa     => HashRef,
    lazy    => 1,
    builder => '_build_config',
);
lib/Dancer2/Logger/Capture.pm view on Meta::CPAN
This is a logger class for L<Dancer2> which captures all logs to an object.
Its primary purpose is for testing. Here is an example of a test:
    use strict;
    use warnings;
    use Test::More;
    use Plack::Test;
    use HTTP::Request::Common;
    use Ref::Util qw<is_coderef>;
    {
        package App;
        use Dancer2;
        set log       => 'debug';
        set logger    => 'capture';
        get '/' => sub {
            log(debug => 'this is my debug message');
lib/Dancer2/Manual/Migration.pod view on Meta::CPAN
L<Dancer2::Logger::Capture> could be used for testing, to capture all
logs to an object.
For example:
    use strict;
    use warnings;
    use Test::More import => ['!pass'];
    use Plack::Test;
    use HTTP::Request::Common;
    use Ref::Util qw<is_coderef>;
    {
        package App;
        use Dancer2;
        set log       => 'debug';
        set logger    => 'capture';
        get '/' => sub {
            debug 'this is my debug message';
lib/Dancer2/Plugin.pm view on Meta::CPAN
$Dancer2::Plugin::VERSION = '2.0.1';
use strict;
use warnings;
use Moo;
use Carp;
use List::Util qw/ reduce /;
use Module::Runtime 'require_module';
use Attribute::Handlers;
use Scalar::Util;
use Ref::Util qw<is_arrayref is_coderef>;
our $CUR_PLUGIN;
extends 'Exporter::Tiny';
with 'Dancer2::Core::Role::Hookable';
has app => (
    is       => 'ro',
    weak_ref => 1,
lib/Dancer2/Test.pm view on Meta::CPAN
$Dancer2::Test::VERSION = '2.0.1';
use strict;
use warnings;
use Carp qw<carp croak>;
use Test::More;
use Test::Builder;
use URI::Escape;
use Data::Dumper;
use File::Temp;
use Ref::Util qw<is_arrayref>;
use parent 'Exporter';
our @EXPORT = qw(
  dancer_response
  response_content_is
  response_content_isnt
  response_content_is_deeply
  response_content_like
  response_content_unlike
t/00-report-prereqs.dd view on Meta::CPAN
                                      'MIME::Base64' => '3.13',
                                      'Module::Pluggable' => '0',
                                      'Module::Runtime' => '0',
                                      'Moo' => '2.000000',
                                      'Moo::Role' => '0',
                                      'POSIX' => '0',
                                      'Path::Tiny' => '0',
                                      'Plack' => '1.0040',
                                      'Plack::Middleware::FixMissingBodyInRedirect' => '0',
                                      'Plack::Middleware::RemoveRedundantBody' => '0',
                                      'Ref::Util' => '0',
                                      'Role::Tiny' => '2.000000',
                                      'Safe::Isa' => '0',
                                      'Sub::Quote' => '0',
                                      'Sub::Util' => '0',
                                      'Template' => '0',
                                      'Template::Tiny' => '1.16',
                                      'Test::Builder' => '0',
                                      'Test::More' => '0.92',
                                      'Type::Tiny' => '1.000006',
                                      'Types::Standard' => '0',
t/charset_server.t view on Meta::CPAN
use Test::More;
use strict;
use warnings;
use Encode;
use utf8;
use Plack::Test;
use HTTP::Request::Common;
use Ref::Util qw<is_coderef>;
{
    package App;
    use Dancer2;
    get '/name/:name' => sub {
        "Your name: " . params->{name};
    };
    post '/name' => sub {
t/classes/Dancer2-Core-Route/match.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal;
use Dancer2::Core::Request;
use Dancer2::Core::Route;
use Capture::Tiny 0.12 'capture_stderr';
use Ref::Util qw<is_regexpref>;
use lib 't/lib';
my @tests = (
    [   [ 'get', '/', sub {11} ], '/', [ {}, 11 ] ],
    [   [ 'get', '/', sub {11} ],
        '/failure',
        [ undef, 11 ]
    ],
    # token tests
t/dancer-test.t view on Meta::CPAN
# who test the tester? We do!
use strict;
use warnings;
use File::Spec;
use File::Basename qw/dirname/;
use Ref::Util qw<is_arrayref>;
BEGIN {
    # Disable route handlers so we can actually test route_exists
    # and route_doesnt_exist. Use config that disables default route handlers.
    $ENV{DANCER_CONFDIR} = File::Spec->catdir(dirname(__FILE__), 'dancer-test');
}
use Test::More tests => 50;
use Dancer2;
t/dispatcher.t view on Meta::CPAN
use strict;
use warnings;
use Test::More import => ['!pass'];
use Carp 'croak';
use Ref::Util qw<is_regexpref>;
use Dancer2;
use Dancer2::Core::App;
use Dancer2::Core::Route;
use Dancer2::Core::Dispatcher;
use Dancer2::Core::Hook;
use Dancer2::Core::Response;
set logger => 'Null';
t/dsl/error_template.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Plack::Test;
use HTTP::Request::Common;
use Ref::Util qw<is_coderef>;
{
    package CustomError;
    use Dancer2;
    set views      => 't/corpus/pretty';
    set public_dir => 't/corpus/pretty_public';
    get '/error' => sub {
t/dsl/halt.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Plack::Test;
use HTTP::Request::Common;
use Ref::Util qw<is_coderef>;
subtest 'halt within routes' => sub {
    {
        package App;
        use Dancer2;
        get '/' => sub { 'hello' };
        get '/halt' => sub {
            response_header 'X-Foo' => 'foo';
t/dsl/halt_with_param.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Plack::Test;
use HTTP::Request::Common;
use Ref::Util qw<is_coderef>;
subtest 'halt with parameter within routes' => sub {
    {
        package App;
        use Dancer2;
        get '/' => sub { 'hello' };
        get '/halt' => sub {
            response_header 'X-Foo' => 'foo';
t/dsl/pass.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Plack::Test;
use HTTP::Request::Common;
use Ref::Util qw<is_coderef>;
subtest 'pass within routes' => sub {
    {
        package App;
        use Dancer2;
        get '/' => sub { 'hello' };
        get '/**' => sub {
            response_header 'X-Pass' => 'pass';