Skip to content

Instantly share code, notes, and snippets.

@berekuk
berekuk / test.pl
Created June 8, 2011 18:24
mx-getopt-delegation
#!/usr/bin/perl
package Context;
use Moose;
has [qw( a b c )] => (
is => 'ro',
isa => 'Bool',
default => 1,
);
@berekuk
berekuk / test.pl
Created June 29, 2011 14:31
requires-vs-attribute
package My::Role::Owned;
use Moose::Role;
requires 'owner';
package My::Role::Owned::FromFile;
use Moose::Role;
with 'My::Role::Owned';
$ perl -e 'package R; use Moose::Role; requires "foo"; package X; use Moose; with "R"; has "foo" => (is => "ro");'
'R' requires the method 'foo' to be implemented by 'X' at /usr/lib/perl5/Moose/Meta/Role/Application.pm line 53
Moose::Meta::Role::Application::apply('Moose::Meta::Role::Application::ToClass=HASH(0x1172c20)', 'Moose::Meta::Role=HASH(0x116a100)', 'Moose::Meta::Class=HASH(0x116a5c0)') called at /usr/lib/perl5/Moose/Meta/Role/Application/ToClass.pm line 33
Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0x1172c20)', 'Moose::Meta::Role=HASH(0x116a100)', 'Moose::Meta::Class=HASH(0x116a5c0)', 'HASH(0xf416d0)') called at /usr/lib/perl5/Moose/Meta/Role.pm line 490
Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0x116a100)', 'Moose::Meta::Class=HASH(0x116a5c0)') called at /usr/lib/perl5/Moose/Util.pm line 139
Moose::Util::_apply_all_roles('Moose::Meta::Class=HASH(0x116a5c0)', 'undef', 'R') called at /usr/lib/perl5/Moose/Util.pm line 93
Moose::Util::apply_
$ perl test.pl
'R2' requires the method 'foo' to be implemented by 'X' at /usr/lib/perl5/Moose/Meta/Role/Application.pm line 53
Moose::Meta::Role::Application::apply('Moose::Meta::Role::Application::ToClass=HASH(0x1167e80)', 'Moose::Meta::Role=HASH(0x1176360)', 'Moose::Meta::Class=HASH(0x116d8d0)') called at /usr/lib/perl5/Moose/Meta/Role/Application/ToClass.pm line 33
Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0x1167e80)', 'Moose::Meta::Role=HASH(0x1176360)', 'Moose::Meta::Class=HASH(0x116d8d0)', 'HASH(0x11887f0)') called at /usr/lib/perl5/Moose/Meta/Role.pm line 490
Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0x1176360)', 'Moose::Meta::Class=HASH(0x116d8d0)') called at /usr/lib/perl5/Moose/Util.pm line 139
Moose::Util::_apply_all_roles('Moose::Meta::Class=HASH(0x116d8d0)', 'undef', 'R2') called at /usr/lib/perl5/Moose/Util.pm line 93
Moose::Util::apply_all_roles('Moose::Meta::Class=HASH(0x116d8d0)', 'R2') called at /usr/lib/perl5/Moose.pm line 60
package X;
# some non-moose abstract class
# there are lots of code using its subclasses
sub write {
die 'not implemented';
}
package X::Role::Moose;
package Role::RO;
use Moose::Role;
has 'read_only' => (
is => 'ro',
isa => 'Bool',
);
package Role::RO::Auto;
use strict;
use warnings;
{
package MyApp::Role;
use Moose::Role;
has 'fun' => ( is => 'ro' );
}
$ perl test.pl
'R2' requires the method 'foo' to be implemented by 'X' at /usr/lib/perl5/Moose/Meta/Role/Application.pm line 53
Moose::Meta::Role::Application::apply('Moose::Meta::Role::Application::ToClass=HASH(0x11888f0)', 'Moose::Meta::Role=HASH(0x1176310)', 'Moose::Meta::Class=HASH(0x1176300)') called at /usr/lib/perl5/Moose/Meta/Role/Application/ToClass.pm line 33
Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0x11888f0)', 'Moose::Meta::Role=HASH(0x1176310)', 'Moose::Meta::Class=HASH(0x1176300)', 'HASH(0x117ca00)') called at /usr/lib/perl5/Moose/Meta/Role.pm line 490
Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0x1176310)', 'Moose::Meta::Class=HASH(0x1176300)') called at /usr/lib/perl5/Moose/Util.pm line 139
Moose::Util::_apply_all_roles('Moose::Meta::Class=HASH(0x1176300)', 'undef', 'R2') called at /usr/lib/perl5/Moose/Util.pm line 93
Moose::Util::apply_all_roles('Moose::Meta::Class=HASH(0x1176300)', 'R2') called at /usr/lib/perl5/Moose.pm line 60
We couldn’t find that file to show.
# vim: ft=perl
use Ubic::Service::Web;
Ubic::Service::Web->new(
stdout => '/Users/mmcleric/Documents/coding/tmp/web.log',
stderr => '/Users/mmcleric/Documents/coding/tmp/web.err.log',
app => '/Users/mmcleric/perl5/bin/ubic-web',
);