Extendiendo Sass
Puede ampliar la funcionalidad de SASS para proporcionar diferentes tipos de funciones y personalizaciones para los usuarios. Para hacer uso de estas funciones, el usuario debe tener conocimientos de Ruby.
Definición de funciones SASS personalizadas
Puede definir sus propias funciones SASS mientras usa Ruby API. Puede agregar sus funciones personalizadas agregándolas a los métodos de Ruby como se muestra en el siguiente código:
module Sass::Script::Functions
def reverse(string)
assert_type string, :String
Sass::Script::Value::String.new(string.value.reverse)
end
declare :reverse, [:string]
end
En el código que puede ver, la función, declare, especifica los nombres de los argumentos para la función. Si falla, no aceptará ningún argumento incluso si la función está funcionando y también acepta argumentos de palabra clave arbitrarios. Puede obtener valores de Ruby utilizando el descriptor de acceso de valor y acceder a los objetos de color utilizando rgb, rojo, verde o azul .
Almacenes de caché
SASS almacena la caché de los documentos analizados, que se pueden reutilizar sin volver a analizar. Usos de SASS:cache_locationpara escribir archivos de caché en el sistema de archivos. Hace que la compilación de archivos SASS sea más rápida y, si elimina los archivos en caché, se volverán a generar la próxima vez que los compile. Puede definir su propio almacén de caché configurando el:cache_storeopción. Esto escribirá archivos de caché en el sistema de archivos o compartirá archivos de caché en procesos o máquinas de ruby. SASS usa una instancia de la subclase de Sass :: CacheStores :: Base para almacenar y recuperar los resultados de la caché.
Importadores personalizados
SASS usa @import para importar archivos SCSS y SASS y pasa rutas a la regla @import para encontrar un código de ruta apropiado para rutas especificadas. Los importadores de SASS usan el sistema de archivos para cargar el código y lo agregan a la carga usando una base de datos o un esquema de nombres de archivos diferente.
El importador único puede cargar un solo archivo y puede colocarse en la matriz : load_paths junto con las rutas del sistema de archivos. Mientras usa @import , SASS busca rutas cargadas, que importan la ruta para el importador. Cuando se encuentra la ruta, se utiliza el archivo importado. Un usuario puede heredar los importadores deSass::Importers::Base.