Your SlideShare is downloading. ×
Metamoose
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Metamoose

1,042
views

Published on

Published in: Technology, News & Politics

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,042
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Meta MooseTuesday, September 18, 12
  • 2. About Me Ynon Perek me@ynonperek.com This keynote is available at: http://ynonperek.comTuesday, September 18, 12
  • 3. Meta Who Person Keynote has manyTuesday, September 18, 12
  • 4. Meta Who Meta-Person Meta-Keynote Person Keynote has manyTuesday, September 18, 12
  • 5. Meta Class What can my class do ? What does my class know ?Tuesday, September 18, 12
  • 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. Real Zombies...Tuesday, September 18, 12
  • 8. Useful Meta MooseX::HasDefaults::RO Assign a meta-role to every attribute which adds: is => ‘ro’ Uses _process_optionsTuesday, September 18, 12
  • 9. Useful Meta MooseX::FollowPBP Automatically set reader and writer to get_name and set_nameTuesday, September 18, 12
  • 10. Useful Meta MooseX::Privacy Private Methods Using metaTuesday, September 18, 12
  • 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. 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. Meta MeTuesday, September 18, 12
  • 14. What I Had Quote Video KeynoteTuesday, September 18, 12
  • 15. What I Need Quote Video Keynote admin/ admin/ admin/ quote video keynoteTuesday, September 18, 12
  • 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. Q&ATuesday, September 18, 12
  • 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

×