Metamoose
-
Upload
ynon-perek -
Category
Technology
-
view
1.049 -
download
0
Transcript of Metamoose
![Page 1: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/1.jpg)
Meta MooseTuesday, September 18, 12
![Page 2: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/2.jpg)
About Me
Ynon [email protected] keynote is available at:http://ynonperek.com
Tuesday, September 18, 12
![Page 3: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/3.jpg)
Meta Who
KeynotePersonhas many
Tuesday, September 18, 12
![Page 4: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/4.jpg)
Meta Who
KeynotePersonhas many
Meta-Person Meta-Keynote
Tuesday, September 18, 12
![Page 5: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/5.jpg)
Meta Class
What can my class do ?What does my class know ?
Tuesday, September 18, 12
![Page 6: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/6.jpg)
Meta Zombie
package main;my $z = Zombie->new; while (chomp ( my $that = <> ) ) { my $m = Zombie->meta->find_method_by_name("eat_${that}"); $m->execute($z) if $m;}
Tuesday, September 18, 12
![Page 7: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/7.jpg)
Real Zombies...
Tuesday, September 18, 12
![Page 8: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/8.jpg)
Useful Meta
MooseX::HasDefaults::ROAssign a meta-role to every attribute which adds:is => ‘ro’
Uses _process_options
Tuesday, September 18, 12
![Page 9: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/9.jpg)
Useful Meta
MooseX::FollowPBPAutomatically set reader and writer to get_name and set_name
Tuesday, September 18, 12
![Page 10: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/10.jpg)
Useful Meta
MooseX::PrivacyPrivate Methods Using meta
Tuesday, September 18, 12
![Page 11: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/11.jpg)
MooseX::Privacyuse MooseX::Privacy; has config => ( is => 'rw', isa => 'Some::Config', traits => [qw/Private/],);
private_method foo => sub { return 23;};
Tuesday, September 18, 12
![Page 12: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/12.jpg)
A few more
MooseX::SingletonMooseX::YAML
package MyApp;use MooseX::Singleton; package main; my $instance = MyApp->instance;my $same = MyApp->instance;
Tuesday, September 18, 12
![Page 13: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/13.jpg)
Meta MeTuesday, September 18, 12
![Page 14: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/14.jpg)
What I Had
KeynoteVideoQuote
Tuesday, September 18, 12
![Page 15: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/15.jpg)
What I Need
KeynoteVideoQuote
admin/quote
admin/video
admin/keynote
Tuesday, September 18, 12
![Page 16: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/16.jpg)
The Meta Wayhas 'name', isa => 'Str', required => 1, in_db => 1, form_opts => { type => 'text_field'}; has 'description', isa => 'Str', required => 1, in_db => 1, form_opts => { type => 'textarea_field' }; has 'url', isa => 'Str', required => 1, in_db => 1, form_opts => { type => 'text_field'}; has 'category', isa => 'Str', default => '', in_db => 1, form_opts => { type => 'select_field', options => YPCourse::Category->get_categories, };
Tuesday, September 18, 12
![Page 17: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/17.jpg)
Q & A
Tuesday, September 18, 12
![Page 18: Metamoose](https://reader033.fdocuments.us/reader033/viewer/2022060109/5555ce8fd8b42aaf158b4bff/html5/thumbnails/18.jpg)
Photos Fromzombies (slide 7): http://www.flickr.com/photos/cwsteeds/4701084069/gate (slide 10): http://www.photoxpress.com/stock-photos/rust/chains/lock/2544705everything else: http://123rf.com
Tuesday, September 18, 12