Розширення можливостей Sass з допомогою користувальницьких функцій

24

Від автора: ви можете розширити функціонал SASS, щоб надати користувачам додаткові можливості і налаштування. Щоб використовувати ці функції, користувач повинен знати Ruby.

Визначення користувальницьких функцій SASS

Ви можете визначити власні функції SASS, використовуючи Ruby API. Користувальницькі функції можна ввести, додавши їх в методи Ruby, як показано в наведеному нижче коді:

module Sass::Script::Functions
def reverse(string)
assert_type string, :String
Sass::Script::Value::String.new(string.value.reverse)
end
declare :reverse, [:string]
end

В даному коді ви можете бачити оголошення Функції та зазначення імен аргументів для неї. Якщо сталася помилка, функція не приймає ніяких аргументів, навіть якщо вона працює, а також приймає довільні аргументи ключового слова. Ви можете отримати значення Ruby, використовуючи атрибут value, доступ до об’єктів квітів здійснюється з допомогою ключових слів rgb (red, green чи blue.

Зберігання кешу

SASS зберігає кеш проаналізованих документів, який можна повторно використовувати без обробки. SASS використовує: cache_location для запису файлів кешу у файловій системі. Це дозволяє швидше компілювати файли SASS, і якщо ви видаляєте кешовані файли, вони будуть знову згенеровані при наступній компіляції. Ви можете визначити власне сховище кешу, встановивши параметр :cache_store. Таким чином можна записувати файли кеша в файлову систему або обмінюватися кеш-файлами, процесами або машинами ruby. Для зберігання і отримання результатів кеша SASS використовує примірник підкласу Sass::CacheStores::Base.

Користувальницькі імпортери

SASS використовує @import для імпорту файлів SCSS і SASS і передає шляху правило @import, щоб знайти відповідний код шляхи для зазначених шляхів. Імпортери SASS використовують файлову систему для завантаження коду і додаються до процесу завантаження з використанням бази даних або іншої структури файлів.

Один імпортер може виконувати завантаження по одному файлу, його можна помістити в масив load_paths разом з шляхами файлової системи. При використанні @import SASS шукає шляхи завантажені, які надають шлях для імпортера. Коли шлях знайдений, використовується імпортований файл. Користувач може успадковувати імпортери з Sass::Importers::Base.