Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Snakeskin (https://javascript.ru/forum/project/35057-snakeskin.html)

melky 14.08.2014 16:50

что такое "директива для асинхронной работы" ?
угумс, я видел модуль async и т.д. , но ... не могу понять асинхронность в движке шаблонов)

кеширование при рендере файлов. пройдет ли Snakeskin этот тест?

(readCount - это счетчик вызовов fs.readFile в nodejs)
specify "should support cache on demand" (done) !->
  # рендерим файл несколько раз
  (err, tmpl) <-! engine .renderFile "#{fixtures-path}/args.ss", {+cache}
  (err, tmpl) <-! engine .renderFile "#{fixtures-path}/args.ss", {+cache}
  (err, tmpl) <-! engine .renderFile "#{fixtures-path}/args.ss", {+cache}
  if err then return done err
  # но на самом деле он читается только один раз
  expect readCount .to .be .eq 1
  done!

kobezzza 14.08.2014 18:22

Цитата:

что такое "директива для асинхронной работы" ?
угумс, я видел модуль async и т.д. , но ... не могу понять асинхронность в движке шаблонов)
Ну, это очень редкий кейс, но иногда бывает нужно и такая поддержка позволяет избавится от попоболи.

- template foo(@param, callback)
    - when ajax(...)
        () => result
            ? callback(getTplResult())


Цитата:

кеширование при рендере файлов. пройдет ли Snakeskin этот тест?
И да, и нет. Там от выходных параметров зависит. Например, если передаётся хеш language, то результат не кешируется.

melky 14.08.2014 19:05

Цитата:

Сообщение от kobezzza
Ну, это очень редкий кейс, но иногда бывает нужно и такая поддержка позволяет избавится от попоболи.

это используется для подгрузки шаблонов на фронтенде? Эдакий requireJS для шаблонов - я верно понял?

kobezzza 14.08.2014 19:32

Цитата:

это используется для подгрузки шаблонов на фронтенде? Эдакий requireJS для шаблонов - я верно понял?
Ну, так тоже можно использовать конечно, а вообще кейс любой где нужна асинхронная работа.

kobezzza 14.08.2014 20:00

Чёто у мя сёня день багов.

Выпустил уже v4.0.10 :)

melky 15.08.2014 12:26

кидает ошибку при использовании плейсхолдера %fileName%. это я виноват или это баг ?)

Лог:
Код:

    SnakeskinError: invalid "template" name, line: 1
---------------------------
> 1 {template %fileName% ()}
---------------------------

Сам файл:
filter_repeat.ss:
Код:

{template %fileName% ()}{'foo'|repeat}{/template}

kobezzza 15.08.2014 12:37

Гмм... ща проверю

UPD: у меня всё работает, можешь описать сценарий: параметры компиляции, где запускаешь (нода или браузер) и т.д.

Написал тест для этой проверки, всё ок работает

https://github.com/kobezzza/Snakeski...ts/template.ss

***

Выпустил очередной хотфикс апдейт 4.0.12.

kobezzza 16.08.2014 12:44

Выпустил очередной хотфикс апдейт 4.0.16.

kobezzza 19.08.2014 11:35

Выпустил очередной хотфикс апдейт 4.0.20.

kobezzza 25.08.2014 14:22

Выпустил очередной хотфикс апдейт 4.0.21.


Часовой пояс GMT +3, время: 23:48.