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

 

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

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

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

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

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

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

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



Moose::Cookbook::Meta::Recipe5(3)    User Contributed Perl Documentation   Moose::Cookbook::Meta::Recipe5(3)



NAME
       Moose::Cookbook::Meta::Recipe5 - The "table" attribute as a metaclass trait

VERSION
       version 2.0205

SYNOPSIS
         package MyApp::Meta::Class::Trait::HasTable;
         use Moose::Role;

         has table => (
             is  => 'rw',
             isa => 'Str',
         );

         package Moose::Meta::Class::Custom::Trait::HasTable;
         sub register_implementation { 'MyApp::Meta::Class::Trait::HasTable' }

         package MyApp::User;
         use Moose -traits => 'HasTable';

         __PACKAGE__->meta->table('User');

DESCRIPTION
       This recipe takes the metaclass table attribute from Moose::Cookbook::Meta::Recipe4 and implements it
       as a metaclass trait. Traits are just roles, as we saw in Moose::Cookbook::Meta::Recipe3.

       The advantage of using traits is that it's easy to combine multiple traits, whereas combining
       multiple metaclass subclasses requires creating yet another subclass. With traits, Moose takes care
       of applying them to your metaclass.

   Using this Metaclass Trait in Practice
       Once this trait has been applied to a metaclass, it looks exactly like the example we saw in
       Moose::Cookbook::Meta::Recipe4:

         my $table = MyApp::User->meta->table;

         # the safe version
         $table = MyApp::User->meta->table
             if MyApp::User->meta->meta->can('does')
                and MyApp::User->meta->meta->does('MyApp::Meta::Class');

       The safe version is a little complicated. We have to check that the metaclass object's metaclass has
       a "does" method, in which case we can ask if the the metaclass does a given role.

       It's simpler to just write:

         $table = MyApp::User->meta->table
             if MyApp::User->meta->can('table');

       In theory, this is a little less correct, since the metaclass might be getting its "table" method
       from a different role. In practice, you are unlikely to encounter this sort of problem.

SEE ALSO
       Moose::Cookbook::Meta::Recipe3 - Labels implemented via attribute traits

       Moose::Cookbook::Meta::Recipe4 - Adding a "table" attribute to the metaclass

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::Meta::Recipe5(3)

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

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

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