Class: Deadfire::MixinParser

Inherits:
Object
  • Object
show all
Defined in:
lib/deadfire/mixin_parser.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMixinParser

Returns a new instance of MixinParser.



7
8
9
# File 'lib/deadfire/mixin_parser.rb', line 7

def initialize
  @mixins = {}
end

Instance Attribute Details

#mixinsObject (readonly)

Returns the value of attribute mixins.



5
6
7
# File 'lib/deadfire/mixin_parser.rb', line 5

def mixins
  @mixins
end

Instance Method Details

#interpret(node) ⇒ Object



11
12
13
# File 'lib/deadfire/mixin_parser.rb', line 11

def interpret(node)
  node.accept(self)
end

#visit_apply_node(node) ⇒ Object



45
46
# File 'lib/deadfire/mixin_parser.rb', line 45

def visit_apply_node(node)
end

#visit_at_rule_node(node) ⇒ Object



19
20
21
22
23
# File 'lib/deadfire/mixin_parser.rb', line 19

def visit_at_rule_node(node)
  if node.block
    visit_block_node(node.block, node)
  end
end

#visit_block_node(node, parent) ⇒ Object



39
40
# File 'lib/deadfire/mixin_parser.rb', line 39

def visit_block_node(node, parent)
end

#visit_comment_node(node) ⇒ Object



42
43
# File 'lib/deadfire/mixin_parser.rb', line 42

def visit_comment_node(node)
end

#visit_newline_node(node) ⇒ Object



48
49
# File 'lib/deadfire/mixin_parser.rb', line 48

def visit_newline_node(node)
end

#visit_ruleset_node(node) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/deadfire/mixin_parser.rb', line 25

def visit_ruleset_node(node)
  if node.block
    visit_block_node(node.block, node)

    if node.selector.cacheable?
      if @mixins.key?(node.selector.selector)
        Deadfire.config.logger.warn("Mixin '#{node.selector.selector}' will be overrided with a new value.")
      end

      @mixins[node.selector.selector] = node.block
    end
  end
end

#visit_stylesheet_node(node) ⇒ Object



15
16
17
# File 'lib/deadfire/mixin_parser.rb', line 15

def visit_stylesheet_node(node)
  node.statements.each { |child| child.accept(self) }
end