class Sass::Script::Tree::MapLiteral

{Sass::Script::Node::Map}.
A class representing a map literal. When resolved, this returns a

def _perform(environment)

Other tags:
    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

Other tags:
    See: Node#children -
def children
  @pairs.flatten
end

def deep_copy

Other tags:
    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)

Parameters:
  • pairs (Array<(Node, Node)>) -- See \{#pairs}
def initialize(pairs)
  @pairs = pairs
end

def to_sass(opts = {})

Other tags:
    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