class Sass::Script::Tree::MapLiteral
A class representing a map literal. When resolved, this returns a {Sass::Script::Node::Map}.
Attributes
Public Class Methods
Public Instance Methods
children()
click to toggle source
@see Node#children
# File lib/sass/script/tree/map_literal.rb, line 19 def children @pairs.flatten end
deep_copy()
click to toggle source
@see Node#deep_copy
# File lib/sass/script/tree/map_literal.rb, line 40 def deep_copy node = dup node.instance_variable_set('@pairs', pairs.map {|(k, v)| [k.deep_copy, v.deep_copy]}) node end
to_sass(opts = {})
click to toggle source
@see Node#to_sass
# File lib/sass/script/tree/map_literal.rb, line 24 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
Also aliased as: inspect
Protected Instance Methods
_perform(environment)
click to toggle source
@see Node#_perform
# File lib/sass/script/tree/map_literal.rb, line 50 def _perform(environment) keys = Set.new map = Sass::Script::Value::Map.new(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