Class: Less::Parser
- Inherits:
-
Object
- Object
- Less::Parser
- Defined in:
- lib/less/parser.rb
Overview
Convert lesscss source into an abstract syntax Tree
Defined Under Namespace
Classes: Tree
Instance Method Summary collapse
- #imports ⇒ Object
-
#initialize(options = {}) ⇒ Parser
constructor
Construct and configure new Less::Parser.
-
#parse(less) ⇒ Less::Tree
Convert ‘less` source into a abstract syntaxt tree.
Constructor Details
#initialize(options = {}) ⇒ Parser
Construct and configure new Less::Parser
11 12 13 14 15 16 17 |
# File 'lib/less/parser.rb', line 11 def initialize( = {}) stringy = {} Less.defaults.merge().each do |k,v| stringy[k.to_s] = v.is_a?(Array) ? v.map(&:to_s) : v.to_s end @parser = Less::JavaScript.exec { Less['Parser'].new(stringy) } end |
Instance Method Details
#imports ⇒ Object
41 42 43 |
# File 'lib/less/parser.rb', line 41 def imports Less::JavaScript.exec { @parser.imports.files.map{|file, _| file} } end |
#parse(less) ⇒ Less::Tree
Convert ‘less` source into a abstract syntaxt tree
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/less/parser.rb', line 22 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. # might get invoked as callback(error) error = args.last else error, tree = *args end fail error. unless error.nil? }) end Tree.new(tree) if tree end |