class Less::Parser
Convert lesscss source into an abstract syntax Tree
def imports
def imports Less::JavaScript.exec { @parser.imports.files.map { |file, _| file } } end
def initialize(options = {})
(**options)
-
:dumpLineNumbers
(String
) -- one of 'mediaquery', 'comments', or 'all' -
:relativeUrls
(TrueClass, FalseClass
) -- -
:strictImports
(TrueClass, FalseClass
) -- -
:compress
(TrueClass, FalseClass
) -- -
:filename
(String
) -- to associate with resulting parse trees (useful for generating errors) -
:paths
(Array
) -- a list of directories to search when handling \@import statements
Parameters:
-
options
(Hash
) -- configuration options
def initialize(options = {}) # LeSS supported _env_ options : # # - paths (unmodified) - paths to search for imports on # - optimization - optimization level (for the chunker) # - mime (browser only) mime type for sheet import # - contents (browser only) # - strictImports # - dumpLineNumbers - whether to dump line numbers # - compress - whether to compress # - processImports - whether to process imports. if false then imports will not be imported # - relativeUrls (true/false) whether to adjust URL's to be relative # - errback (error callback function) # - rootpath string # - entryPath string # - files (internal) - list of files that have been imported, used for import-once # - currentFileInfo (internal) - information about the current file - # for error reporting and importing and making urls relative etc : # this.currentFileInfo = { # filename: filename, # relativeUrls: this.relativeUrls, # rootpath: options.rootpath || "", # currentDirectory: entryPath, # entryPath: entryPath, # rootFilename: filename # }; # env = {} Less.defaults.merge(options).each do |key, val| env[key.to_s] = case val when Symbol, Pathname then val.to_s when Array val.map!(&:to_s) if key.to_sym == :paths # might contain Pathname-s val # keep the original passed Array else val # true/false/String/Method end end @parser = Less::JavaScript.exec { Less['Parser'].new(env) } end
def parse(less)
-
(Less::Tree)
- the parsed tree
Parameters:
-
less
(String
) -- the source to parse
def parse(less) error, tree = nil, nil Less::JavaScript.exec do @parser.parse(less, lambda { |*args| # (error, tree) # v8 >= 0.10 passes this as first arg : if args.size > 2 error, tree = args[-2], args[-1] elsif args.last.respond_to?(:message) && args.last.message # might get invoked as callback(error) error = args.last else error, tree = *args end fail error.message unless error.nil? }) end Tree.new(tree) if tree end