Краткое описание пакета ng.app.rss
==================================

Пакет разработан для раздачи RSS-лент и является объединением
трех компонент:

    [name:objectqueue:ObjectQueue]
        Компонента, выполняющая поддержку очереди
        изменившихся объектов. Такая  очередь характеризуется
        принципом отбора объектов, их очередностью и рядом других
        параметров. Содержимое очереди это точно то, что войдет
        в RSS-ленту.
        
    [name:ng.app.rss:RSS-параметры]
        Компонента, предоставляющая интерфейс, содержащий настроечные
        параметры RSS. Эту компоненту надо разработать в соответствии с
        принципами, изложенными ниже.

    [name:ng.app.rss.rssview:RSS-вид]
        Адаптер вида, получающий текущий контекст и адаптирующий его к
        двум интерфейсам: IObjectQueue (соответствует очереди) и 
        IRSS (соответствует парамерам RSS).
        
        Адаптер вида может привязываться, а может и не привязыватся к 
        конкретному контексту - это не должно отражаться на его работе
        и быть только элементом удобства.

В качестве первоначального выбора, используется стандарт
http://ru.wikipedia.org/wiki/Atom - он более прост и более полезен,
так используется в группах, на которые мы собираеся звязаться сразу после
выхода проекта в свет.

Идея реализации
---------------

Главная тонкость реализации - нигде и никак не определяется в каком месте и
каким образом располагаются ObjectQueue и RSS. Они получаются при помощи
адаптера "откуда-то", хотя на самом деле могут быть расположены (см.
[name:Адаптация как способ ассоциации компонент.txt]) в самых разных местах.
Пока что мы не будем заниматься общем решением этой проблемы, но когда
основная часть будет написана и RSS будет раздаватся, попробуем написать два
специальных адаптера, которые поочередно пытаются адаптировать текущий
объект напрямую, потом всех его родителей, потом дергать утилиту. Ну или
поиграем в другие способы тонкой настройки.

Интерфейсы
----------

[name:objectqueue:ObjectQueue]
..............................

Все интерфейсы и реализация описаны в [name:objectqueue.txt] (продукт
может переехать скоро). Адаптер, выполняющий поиск продукта уже есть.

Утилита предоставляет список объетктов, но объекты могут быть включены
в ленту, только если они приводимы к интерфейсу IRSSItem.

    IRSSItem
        Записи RSS-ленты заполняются атрибутами этого интрефейса. Если в
        очереди есть объект, неприводимый к этому интерфейсу, запись о нем
        не включается в RSS-ленту. Список полей интерфейса нужно
        позаимствовать из описания Atom: http://ru.wikipedia.org/wiki/Atom,
        а адаптеры хорошо пишутся с помощью продукта [name:ng.zcmljunction].
        
        

[name:ng.app.rss:RSS-параметры]
...............................

    IRSS
        Общие параметры RSS-ленты, список надо позаимствовать
        отсюда: http://ru.wikipedia.org/wiki/Atom .  Адаптер контекста к
        IRSS пишется исходя из предположения, что IRSS - утилита.

Компоненты
----------

Два компонента уже описаны: [name:objectqueue:ObjectQueue] и [name:ng.app.rss:RSS-параметры],
упомянем еще два:

[keyword:Адаптер вида] ng.app.rss.rssview
-----------------------------------------

RSS-лента изготаввливается на основ ZPT, а данные получаются при помощи
mix-in'а, как описано выше.
    
Адаптер к интерфейсу IRSSItem
.............................
Делается на основе [name:ng.zcmljunction], в качестве теста можно попробовать
взять куски продукта note или установить наш сайт. Пора уже выходить в
реальный мир :).
    
[name:недописано:переписать как описание готового продукта]

