class Sass::Script::Tree::MapLiteral
{Sass::Script::Node::Map}.
A class representing a map literal. When resolved, this returns a
def _perform(environment)
- See: Node#_perform -
def _perform(environment) keys = Set.new map = Sass::Script::Value::Map.new(Sass::Util.to_hash(pairs.map do |(k, v)| k, v = k.perform(environment), v.perform(environment) if keys.include?(k) raise Sass::SyntaxError.new("Duplicate key #{k.inspect} in map #{to_sass}.") end keys << k [k, v] end)) map.options = options map end
def children
- See: Node#children -
def children @pairs.flatten end
def deep_copy
- See: Node#deep_copy -
def deep_copy node = dup node.instance_variable_set('@pairs', pairs.map {|(k, v)| [k.deep_copy, v.deep_copy]}) node end
def initialize(pairs)
-
pairs
(Array<(Node, Node)>
) -- See \{#pairs}
def initialize(pairs) @pairs = pairs end
def to_sass(opts = {})
- See: Node#to_sass -
def to_sass(opts = {}) return "()" if pairs.empty? to_sass = lambda do |value| if value.is_a?(ListLiteral) && value.separator == :comma "(#{value.to_sass(opts)})" else value.to_sass(opts) end end "(" + pairs.map {|(k, v)| "#{to_sass[k]}: #{to_sass[v]}"}.join(', ') + ")" end