22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/css/selectors/serializer.rb', line 22
def serialize(node)
case node
when SelectorList then node.selectors.map { serialize(it) }.join(', ')
when ComplexSelector then serialize_complex(node)
when CompoundSelector then node.components.map { serialize(it) }.join
when TypeSelector then Escape.ident(node.name)
when UniversalSelector then '*'
when NestingSelector then '&'
when IdSelector then "##{Escape.ident(node.name)}"
when ClassSelector then ".#{Escape.ident(node.name)}"
when AttributeSelector then serialize_attribute(node)
when PseudoClass then serialize_pseudo(node, '')
when PseudoElement then serialize_pseudo(node, ':')
when AnB then serialize_anb(node)
else
raise ArgumentError, "cannot serialize selector node #{node.class}"
end
end
|