Представяме ви Presto

Представяме ви Presto - част втора

Продължавайки да усвоявате лекотата на използване на прясно пуснатата уеб рамка RUBY.

Това е втората част и е посветена на целомъдрието на HTML изобразяването.

  • избор и разширения на двигателя
  • задаване на път към шаблони
  • как, къде и от кого се използват оформления
  • изобразяване на ток/произволен аксион
  • рендиране на произволен файл/светлина
  • компилиране на шаблони за увеличаване на производителността
  • използване на изолирана среда за повишаване на сигурността
  • и т.н.

Шаблони - Опции

По-долу е даден списък с опции за фино насищане View Api.

Важно е да се отбележи, че всички опции могат да бъдат зададени както на ниво контролер, така и на ниво слайс.

Избор на двигател

Благодарение на страхотен проект като Tilt, Presto поддържа повечето от популярните шаблониращи машини като Haml, Sass, CoffeeScript, Erubis, Liquid и др.
Ето пълен списък.

По подразбиране Presto използва ERB.

За да използвате друг механизъм, трябва да извикате view.engine на ниво контролер или отрязък.

Пример: Yuzai: Ерубис на ниво контролер

Пример: Юзай: Хамл на ниво филийки

В този пример News ще използва: Haml, докато статиите ще използват: Erubis.

Ако избраният двигател се нуждае от аргументи по време на инициализацията, ние ги предаваме през същия view.engine .

Разширяване

Presto ще използва разширението, свързано с двигателя по подразбиране: Erubis => .erb, Haml => .haml и т.н.

Ако вашите шаблони използват нестандартно разширение, моля, уведомете ни чрез view.ext

Път към шаблоните

По подразбиране Presto ще търси шаблони в изгледа/папката във вашето приложение.

Ако вашите шаблони са в друга папка, моля, уведомете ни чрез view.path

В този пример класът Index ще търси шаблони в папката base/views/articles, докато статиите в папката base/views/articles.

Тоест, Presto формира пътя към шаблоните, като добави http.map към view.path.

Името на самия шаблон се формира от името на аксиона и разширението.
Разширението се инсталира автоматично или можете да инсталирате своето чрез view.ext

/ users/index ще изобрази view/users/index.haml
/ users/register ще направи преглед view/users/register.haml

Трябва да се отбележи, че в нестандартни ситуации, когато шаблоните са на Луната или на Марс,
трябва да използвате view.root, за да зададете абсолютния път към шаблоните.
В този случай view.path се игнорира.

Път към оформленията

Очаква се оформленията да бъдат в същата папка като шаблоните.
Ако те са в различна папка, трябва да използвате view.layouts_path
за да зададете правилния път. Правилният път трябва да бъде зададен спрямо папката с шаблони.
Няма начин да посочите абсолютния път към оформленията, те трябва да са вътре в папката за шаблони.

Пример: оформленията се намират в оформлението/папката в папката за шаблони

Оформление

По подразбиране Presto няма да изобразява никакви оформления.
Presto може, разбира се, да провери папката за шаблони за светлина и да я изобрази, ако бъде намерена.

Но това е много жестоко за изпълнението.
Файловите операции забавят приложението.

Програмистът знае по-добре как и кога приложението му използва оформления,
и той трябва да сподели това знание с приятелска рамка.

Така че, ако вашият контролер или отрязък използва оформления, уведомете ни чрез view.layout

Ако извикате view.layout само с един аргумент, той ще зададе оформлението за всички действия.

Пример: всички аксиони използват: главно оформление

Ако извикате view.layout с два или повече аргумента, той ще зададе оформлението на действията, предадени като аргументи.

Пример:: signin и: signup use: layout_regout layout, други оформления не

Можете също да игнорирате оформлението за определен списък от действия, като предадете false [Boolean] като първи аргумент.

Пример: всички аксиони използват: по подразбиране, докато печатът игнорира оформлението

view.layout може да бъде извикан много пъти, той е толкова отзивчив.
Редът на обажданията не влияе на инсталацията, така че той разбира.

Пример:: ябълка и: портокал употреба: плодове Оформление, други използват: по подразбиране

Контекст

По подразбиране шаблоните се изобразяват в контекста на задействания в момента контролер.

Тоест шаблонът ще има достъп до всички променливи и методи, достъпни за контролера.

Удобен, но не винаги безопасен.

За по-голяма сигурност си струва да изобразявате шаблони в изолирана среда.