Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Meta MooseTuesday, September 18, 12
About Me                            Ynon Perek                            me@ynonperek.com                            This...
Meta Who                            Person                Keynote                                       has manyTuesday, S...
Meta Who              Meta-Person                         Meta-Keynote                            Person                  ...
Meta Class                            What can my class do ?                            What does my class know ?Tuesday, ...
Meta Zombie          package main;          my $z = Zombie->new;          while (chomp ( my $that = <> ) ) {              ...
Real Zombies...Tuesday, September 18, 12
Useful Meta                            MooseX::HasDefaults::RO                            Assign a meta-role to every attr...
Useful Meta                            MooseX::FollowPBP                            Automatically set reader and writer to...
Useful Meta                            MooseX::Privacy                            Private Methods Using                   ...
MooseX::Privacy                use MooseX::Privacy;                has config   =>   (                    is       =>   rw...
A few more                                           package MyApp;                                           use MooseX::...
Meta MeTuesday, September 18, 12
What I Had                       Quote      Video     KeynoteTuesday, September 18, 12
What I Need                       Quote       Video     Keynote                     admin/        admin/    admin/        ...
The Meta Way        has name,        isa => Str, required => 1, in_db => 1,           form_opts => { type => text_field}; ...
Q&ATuesday, September 18, 12
Photos From                        zombies (slide 7): http://www.flickr.com/                        photos/cwsteeds/470108...
Upcoming SlideShare
Loading in …5
×

Metamoose

1,585 views

Published on

Published in: Technology, News & Politics
  • Be the first to comment

  • Be the first to like this

Metamoose

  1. 1. Meta MooseTuesday, September 18, 12
  2. 2. About Me Ynon Perek me@ynonperek.com This keynote is available at: http://ynonperek.comTuesday, September 18, 12
  3. 3. Meta Who Person Keynote has manyTuesday, September 18, 12
  4. 4. Meta Who Meta-Person Meta-Keynote Person Keynote has manyTuesday, September 18, 12
  5. 5. Meta Class What can my class do ? What does my class know ?Tuesday, September 18, 12
  6. 6. 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
  7. 7. Real Zombies...Tuesday, September 18, 12
  8. 8. Useful Meta MooseX::HasDefaults::RO Assign a meta-role to every attribute which adds: is => ‘ro’ Uses _process_optionsTuesday, September 18, 12
  9. 9. Useful Meta MooseX::FollowPBP Automatically set reader and writer to get_name and set_nameTuesday, September 18, 12
  10. 10. Useful Meta MooseX::Privacy Private Methods Using metaTuesday, September 18, 12
  11. 11. MooseX::Privacy use MooseX::Privacy; has config => ( is => rw, isa => Some::Config, traits => [qw/Private/], ); private_method foo => sub { return 23; };Tuesday, September 18, 12
  12. 12. A few more package MyApp; use MooseX::Singleton; MooseX::Singleton package main; MooseX::YAML my $instance = MyApp->instance; my $same = MyApp->instance;Tuesday, September 18, 12
  13. 13. Meta MeTuesday, September 18, 12
  14. 14. What I Had Quote Video KeynoteTuesday, September 18, 12
  15. 15. What I Need Quote Video Keynote admin/ admin/ admin/ quote video keynoteTuesday, September 18, 12
  16. 16. The Meta Way has 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
  17. 17. Q&ATuesday, September 18, 12
  18. 18. Photos From zombies (slide 7): http://www.flickr.com/ photos/cwsteeds/4701084069/ gate (slide 10): http:// www.photoxpress.com/stock-photos/rust/ chains/lock/2544705 everything else: http://123rf.comTuesday, September 18, 12

×