Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства для  версии 10.9 Mac OS X

Если Вы выполняете различную версию  Mac OS X, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



Moose::Cookbook::Extending::Recipe4(3)ser Contributed Perl Documentationose::Cookbook::Extending::Recipe4(3)



NAME
       Moose::Cookbook::Extending::Recipe4 - Acting like Moose.pm and providing sugar Moose-style

VERSION
       version 2.0205

SYNOPSIS
         package MyApp::Mooseish;

         use Moose ();
         use Moose::Exporter;

         Moose::Exporter->setup_import_methods(
             with_meta => ['has_table'],
             also      => 'Moose',
         );

         sub init_meta {
             shift;
             return Moose->init_meta( @_, metaclass => 'MyApp::Meta::Class' );
         }

         sub has_table {
             my $meta = shift;
             $meta->table(shift);
         }

         package MyApp::Meta::Class;
         use Moose;

         extends 'Moose::Meta::Class';

         has 'table' => ( is => 'rw' );

DESCRIPTION
       This recipe expands on the use of Moose::Exporter we saw in Moose::Cookbook::Extending::Recipe1.
       Instead of providing our own object base class, we provide our own metaclass class, and we also
       export a "has_table" sugar function.

       Given the above code, you can now replace all instances of "use Moose" with "use MyApp::Mooseish".
       Similarly, "no Moose" is now replaced with "no MyApp::Mooseish".

       The "with_meta" parameter specifies a list of functions that should be wrapped before exporting. The
       wrapper simply ensures that the importing package name is the first argument to the function, so we
       can do "my $caller = shift;".

       See the Moose::Exporter docs for more details on its API.

USING MyApp::Mooseish
       The purpose of all this code is to provide a Moose-like interface. Here's what it would look like in
       actual use:

         package MyApp::User;

         use MyApp::Mooseish;

         has_table 'User';

         has 'username' => ( is => 'ro' );
         has 'password' => ( is => 'ro' );

         sub login { ... }

         no MyApp::Mooseish;

       All of the normal Moose sugar ("has()", "with()", etc) is available when you "use MyApp::Mooseish".

CONCLUSION
       Providing sugar functions can make your extension look much more Moose-ish. See Fey::ORM for a more
       extensive example.

AUTHOR
       Stevan Little <stevan@iinteractive.com>

COPYRIGHT AND LICENSE
       This software is copyright (c) 2011 by Infinity Interactive, Inc..

       This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5
       programming language system itself.



perl v5.12.5                                     2011-09-06           Moose::Cookbook::Extending::Recipe4(3)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Perl. (См. perlbug (1) для инструкций представления.)
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Perl, использующему perlbug (1).
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.