X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=moose-class%2Fslides%2Findex.html;h=e8302e4e73cbe636f765ed888232e74e28c1cd6d;hb=a88cc08084397dc7667e26dc315fb5492d8bf558;hp=e255a3ea3d116d28d5463e0364b31851938e5a11;hpb=aba801c43616ba77148f72748c53499cc35d8257;p=gitmo%2Fmoose-presentations.git diff --git a/moose-class/slides/index.html b/moose-class/slides/index.html index e255a3e..e8302e4 100644 --- a/moose-class/slides/index.html +++ b/moose-class/slides/index.html @@ -52,7 +52,7 @@ img#me05 {top: 43px;left: 36px;}
@@ -155,7 +155,7 @@ img#me05 {top: 43px;left: 36px;}package Person;
use Moose;
-has first_name => ( is => 'rw' );
+has first_name => ( is => 'ro' );
@@ -950,10 +950,10 @@ sub BUILD {
@@ -1054,13 +1054,13 @@ use Moose;
extends 'Person';
-override work => sub {
+override work => sub {
my $self = shift;
die "Pay me first"
unless $self->got_paid;
- super();
-};
+ super();
+};
@@ -1155,8 +1155,8 @@ Person->can('extends');
package Person;
-use namespace::autoclean;
use Moose;
+use namespace::autoclean;
...
@@ -1234,7 +1234,7 @@ use Moose;
# perl bin/prove -lv t/00-prereq.t
-# perl install-moose (if needed)
+## Read the instructions in t/01-classes.t
# perl bin/prove -lv t/01-classes.t
@@ -1307,30 +1307,32 @@ sub print {
package Person;
use Moose;
-with 'HasPermissions';
+with 'Printable';
@@ -1340,7 +1342,9 @@ print $person->full_name
package Person;
use Moose;
-with 'Printable';
+with 'Printable';
+
+sub as_string { $_[0]->first_name() }
-
-
-
-
@@ -1656,8 +1634,6 @@ requires 'compare';
init_arg
init_arg
to undef
class_type
use Moose::Util::TypeConstraints;
-class_type 'DateTime';
+
+class_type 'DateTime';
+
+
subtype 'DateTime',
+
+subtype 'DateTime',
as 'Object',
where { $_->isa('DateTime') },
message { ... };
@@ -2699,11 +2618,15 @@ class_type 'DateTime';
role_type
use Moose::Util::TypeConstraints;
-role_type 'Printable';
+
+role_type 'Printable';
+
+
subtype 'Printable',
+
+subtype 'Printable',
as 'Object',
where
{ Moose::Util::does_role(
@@ -2715,11 +2638,15 @@ role_type 'Printable';
Subtype Shortcuts - duck_type
use Moose::Util::TypeConstraints;
-duck_type Car => qw( run break_down );
+
+duck_type Car => qw( run break_down );
+
+
subtype 'Car',
+
+subtype 'Car',
as 'Object',
where { all { $_->can($_) }
qw( run break_down ) },
@@ -2730,11 +2657,15 @@ duck_type Car => qw( run break_down );
Subtype Shortcuts - enum
use Moose::Util::TypeConstraints;
-enum Color => qw( red blue green );
+
+enum Color => qw( red blue green );
+
+
my %ok = map { $_ => 1 }
+
+my %ok = map { $_ => 1 }
qw( red blue green );
subtype 'Color'
@@ -2749,7 +2680,9 @@ subtype 'Color'
package Person;
my $posint =
- subtype as 'Int', where { $_ > 0 };
+ subtype
+ as 'Int',
+ where { $_ > 0 };
has size => (
is => 'ro',
@@ -2808,7 +2741,8 @@ coerce 'My::DateTime',
@@ -3028,10 +2962,21 @@ has transaction_history => (
+
+
+
+
@@ -3345,8 +3313,7 @@ has history => (
package Person;
use Moose;
has _favorite_numbers => (
- traits => [ 'Array' ],
- is => 'bare',
+ traits => [ 'Array' ],
isa => 'ArrayRef[Int]',
default => sub { [] },
init_arg => undef,
@@ -3409,7 +3376,7 @@ has account => (
isa => 'BankAccount',
handles => {
receive_100 =>
- [ 'deposit', 100 ]
+ [ 'deposit', 100 ],
give_100 =>
[ 'withdraw', 100 ]
},
@@ -3425,82 +3392,6 @@ $person->account->deposit(100);
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -3564,7 +3458,7 @@ Iterate til this passes all its tests
MooseX::Declare
use MooseX::Declare;
-use 5.10.0; # for say
+use 5.12.0; # for say
class Person {
has greeting =>
@@ -3583,7 +3477,7 @@ class Person {
Still experimental-ish, but seeing more and more use
Not a source filter!
Hooks into the Perl parser rather than filtering all your code
- But not supported by PPI
, perltidy
, etc. (yet?)
+ But not supported by PPI
, perltidy
, etc. (yet?)
@@ -3737,12 +3631,13 @@ with HasCollection => { type => 'Int' };
- - Catalyst
- - CHI
- - Devel::REPL
- - Email::Sender
- - Fey
- - Net::Twitter
+ - Catalyst
+ - CHI
+ - Devel::REPL
+ - Dist::Zilla
+ - Email::Sender
+ - Fey
+ - Net::Twitter
@@ -3751,12 +3646,12 @@ with HasCollection => { type => 'Int' };
- http://moose.perl.org/
- - Moose::Manual and Moose::Cookbook
+ - Moose::Manual and Moose::Cookbook
- irc://irc.perl.org/#moose
- mailing list - moose@perl.org
- Slides and exercises are in Moose's git repo:
- git://git.moose.perl.org/moose-presentations/moose.git
+ git://git.moose.perl.org/moose-presentations.git
@@ -3770,7 +3665,7 @@ with HasCollection => { type => 'Int' };