Module: CSS::Serializer
Overview
Serializer based on CSS Syntax Module Level 4 ยง9 Serialization. drafts.csswg.org/css-syntax/#serialization
The output is intended to round-trip: re-parsing it should yield an equivalent AST. Idents, strings, hashes, and dimensions are escaped following the spec rules.
Constant Summary collapse
- INDENT =
' '.freeze
Instance Method Summary collapse
Instance Method Details
#serialize(node) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/css/serializer.rb', line 13 def serialize(node) case node when Nodes::Stylesheet then serialize_stylesheet(node) when Nodes::AtRule then serialize_at_rule(node) when Nodes::QualifiedRule then serialize_qualified_rule(node) when Nodes::Block then serialize_block(node) when Nodes::Declaration then serialize_declaration(node) when Nodes::Function then serialize_function(node) when Nodes::SimpleBlock then serialize_simple_block(node) when Token then serialize_token(node) when Selectors::Node then Selectors::Serializer.serialize(node) when Array then node.map { serialize(it) }.join else raise ArgumentError, "cannot serialize #{node.class}" end end |