<<
>>

Создание модуля

Мне кажется, очень много для популярности того или иного языка делают вовсе не его качества именно как языка, а какие-то маленькие удобные фенечки, или большие удобные фенечки. В perl главная большая удобная фенечка - это CPAN, гигантский архив готовых модулей, которые ставятся через единый интерфейс, с зависимостями, тестами, и прочим.

Очень боль

шая удобная фенечка. Есть фенечки поменьше. Например, утилитки для генерации каркаса модуля. Открываем терминал, идем в папочку проектов (у себя назову ее ~/Desktop/test):

kilork@pantogan: ~ $ mkdir Desktop/test kilork@pantogan:~ $ cd Desktop/test kilork@pantogan:~/ Desktop / test!

Надо определиться с названием. Я обычно весьма много времени трачу на придумывание названия. Как говорил небезизвестный персонаж, как вы яхту назовете, так она и поплывет. Поэтому название надо очень тщательно выбирать. Наш модуль будет жить в пространстве имен FinancecQuote и относится к Сбербанку, назовем его Finance::Quote::Sberbank. Итак, воспользуемся командой h2xs:

kilork@pantogan:~/Desktop/test$ h2xs —АХ —n Finance::

Quote : : Sberbank

Defaulting to backwards compatibility with perl 5.8.8 If you intend this module to be compatible with earlier perl versions, pi ease specify a minimum perl version with the —b option .

Writing Finance—Quote—Sberbank /lib / Finance /Quote/Sberbank .pm

Writing Finance— Quote—Sberbank/Makefile .PL Writing Finance-Quote-Sberbank/README

Writing Finance-Quote-Sberbank/1/Finance-Quote—Sberbank, t Writing Finance-Quote-Sberbank/Changes Writing Finance-Quote-Sberbank/MANIFEST

Как видно, одна маленькая команда насоздавала нам множество файли- ков. Один, очевидно, сам каркас модуля. Затем идет генератор Макейіе’ов. Файлик с README, файлик тестов. Лог изменений Changes. И MANIFEST. Чудеса, да и только, почти вся работа сделана за нас этой маленькой чудесной командой.

Главное - не давать никому знать об этом.

Сгенерируем Makefile. Укажем дополнительный параметр, говорящий о нашем желании ставить модули в локальную директорию пользователя.

kilork@pantogan: ~ / Desktop / test/Finance-Quote-SberbankS perl Makefile .PL PREFIX ~ perl Checking if your kit is complete . . .

Looks good

Writing Makefile for Finance :: Quote :: Sberbank

Отлично, теперь мы можем собирать, тестировать, инсталлировать, и собирать дистрибутив простыми командами. Собираем:

kiIorkQpantogan:~/Desktop/test/Finaneе-Quote- Sberbank$ make # собираем cp lib/Finance/

Quote/Sberbank.pm blib/lib/Finance/Quote/ Sberbank.pm Manifying blib/man3/Finance:: Quote :: Sberbank .3pm

Тестируем:

kilork@pantogan:~/Desktop / test/Finance—Quote—SberbankS make test # тестируем

PERL_DL_NONLAZY= I /usr/bin/perl "—MExtUtils :: Command : :MM\' e" "test_harness (0 , ’blib/lib’, ’ blib/arch ’) " t/*.t t/Finance—Quote—Sberbank ... . ok All tests successful . Files = I, Tests = I, 0 wallclock secs ( 0.08 cusr + 0.01 csys = 0.09 CPU)

Инсталлируем:

kilork@pantogan: ~ / Desktop/ test / Finance—Quote—SberbankS make install # инсталлируем Installing /home/kilork/ perl/share/perl / 5.8.8 /Finance/ Quote/Sberbank .pm Installing /home/kilork/perl/man/ man3/Finance :: Quote :: Sberbank .3pm Writing /home/kilork /perl/lib/perl/5.8.8 / auto/Finance / Quote/Sberbank /. packlist Appending installation info to /home/kilork/ perl/lib/perl / 5.8.8 / perllocal . pod

Собираем дистрибутив:

kilorк@pantogan: \'/Desktop / test /Finance-Quote-SberbankS make dist ф собираем дистрибутив rm -rf Finance-Quote-Sberbank-0.01 /usr/bin/perl "- MExtUtils :: Manifest=manicopy , maniread" \\ —e "

manicopy(maniread () , ’ Finance—Quote—Sberbank—0.01 ’, ’ best ’)

mkdir Finance—Quote—Sberbank—0.01 mkdir Finance—Quote— Sberbank—0.01/lib mkdir Finance—Quote—Sberbank—0.01/ lib /Finance

mkdir Finance-Quote-Sberbank -0.01/ lib /Finance/Quote mkdir Finance-Quote-Sberbank -0.01/1 Generating META, yml

tar cvf Finance—Quote—Sberbank—0.01.tar Finance—Quote— Sberbank —0.01 Finance—Quote—Sberbank —0.01 / Finance-Quote-Sberbank -0.01 /MANIFEST

Finance-Quote-Sberbank -0.01/ lib / Finance-Quote-Sberbank -0.01/lib/ Finance/ Finance-Quote-Sberbank - 0.01/ lib / Finance/Quote/ Finance—Quote—Sberbank —0.01/ lib /Finance /Quote/Sberbank .pm Finance—Quote—Sberbank —0.01 /t/ Finance—Quote—Sberbank —0.01/1 /Finance—Quote—Sberbank .

t Finance-Quote-Sberbank -0.01/Changes

Finance-Quote-Sberbank — 0.01/README Finance-Quote-Sberbank — 0.01/Makefile .PL Finance— Quote—Sberbank —0.01 /МЕГА, yml rm —rf Finance—Quote—Sberbank—0.01 gzip —best Finance—Quote—Sberbank—0.01.tar

Команд немного, все очень просто, на текущем этапе нам понадобятся команды make и make test. Затем make install, если надо будет использовать модуль из GnuCash или других программ, и наконец - make dist, если нам ВДРУГ захочется все это дело выложить на CPAN (мне захотелось, можно поискать Sberbank на http://search.cpan.org).

Каркас модуля мы создали, подготовили среду к сборке и тестированию, приступаем к реализации модуля для FinanceuQuote.

4.2

<< | >>
Источник: Александр Королев. Руководство по GnuCash. 2010

Еще по теме Создание модуля:

- Авторское право - Аграрное право - Адвокатура - Административное право - Административный процесс - Антимонопольно-конкурентное право - Арбитражный (хозяйственный) процесс - Аудит - Банковская система - Банковское право - Бизнес - Бухгалтерский учет - Вещное право - Государственное право и управление - Гражданское право и процесс - Денежное обращение, финансы и кредит - Деньги - Дипломатическое и консульское право - Договорное право - Жилищное право - Земельное право - Избирательное право - Инвестиционное право - Информационное право - Исполнительное производство - История - История государства и права - История политических и правовых учений - Конкурсное право - Конституционное право - Корпоративное право - Криминалистика - Криминология - Маркетинг - Медицинское право - Международное право - Менеджмент - Муниципальное право - Налоговое право - Наследственное право - Нотариат - Обязательственное право - Оперативно-розыскная деятельность - Права человека - Право зарубежных стран - Право социального обеспечения - Правоведение - Правоохранительная деятельность - Предпринимательское право - Семейное право - Страховое право - Судопроизводство - Таможенное право - Теория государства и права - Трудовое право - Уголовно-исполнительное право - Уголовное право - Уголовный процесс - Философия - Финансовое право - Хозяйственное право - Хозяйственный процесс - Экологическое право - Экономика - Ювенальное право - Юридическая деятельность - Юридическая техника - Юридические лица -