# class Sass::Util::NormalizedMap

### Public Class Methods

new(map = nil) click to toggle source

Create a normalized map

    # File lib/sass/util/normalized_map.rb, line 11
    def initialize(map = nil)
      @key_strings = {}
      @map = Util.ruby1_8? ? OrderedHash.new : {}

      map.each {|key, value| self[key] = value} if map
    end

### Public Instance Methods

[](k) click to toggle source

@private

    # File lib/sass/util/normalized_map.rb, line 43
    def [](k)
      @map[normalize(k)]
    end

[]=(k, v) click to toggle source

@private

    # File lib/sass/util/normalized_map.rb, line 35
    def []=(k, v)
      normalized = normalize(k)
      @map[normalized] = v
      @key_strings[normalized] = k
      v
    end

as_stored() click to toggle source

@return [Hash] Hash with the keys as they were stored (before normalization).

    # File lib/sass/util/normalized_map.rb, line 60
    def as_stored
      Sass::Util.map_keys(@map) {|k| @key_strings[k]}
    end

delete(k) click to toggle source

@private

    # File lib/sass/util/normalized_map.rb, line 53
    def delete(k)
      normalized = normalize(k)
      @key_strings.delete(normalized)
      @map.delete(normalized)
    end

denormalize(key) click to toggle source

Returns the version of `key` as it was stored before normalization. If `key` isn't in the map, returns it as it was passed in.

@return [String]

    # File lib/sass/util/normalized_map.rb, line 30
    def denormalize(key)
      @key_strings[normalize(key)] || key
    end

dup() click to toggle source
Calls superclass method

    # File lib/sass/util/normalized_map.rb, line 96
    def dup
      d = super
      d.send(:instance_variable_set, "@map", @map.dup)
      d
    end

each() { |k, v| ... } click to toggle source

    # File lib/sass/util/normalized_map.rb, line 76
    def each
      @map.each {|k, v| yield(k, v)}
    end

empty?() click to toggle source

    # File lib/sass/util/normalized_map.rb, line 64
    def empty?
      @map.empty?
    end

has_key?(k) click to toggle source

@private

    # File lib/sass/util/normalized_map.rb, line 48
    def has_key?(k)
      @map.has_key?(normalize(k))
    end

keys() click to toggle source

    # File lib/sass/util/normalized_map.rb, line 72
    def keys
      @map.keys
    end

map() { |k, v| ... } click to toggle source

    # File lib/sass/util/normalized_map.rb, line 92
    def map
      @map.map {|k, v| yield(k, v)}
    end

method_missing(method, *args, &block) click to toggle source

    # File lib/sass/util/normalized_map.rb, line 111
    def method_missing(method, *args, &block)
      if Sass.tests_running
        raise ArgumentError.new("The method #{method} must be implemented explicitly")
      end
      @map.send(method, *args, &block)
    end

normalize(key) click to toggle source

Specifies how to transform the key.

This can be overridden to create other normalization behaviors.

    # File lib/sass/util/normalized_map.rb, line 21
    def normalize(key)
      key.tr("-", "_")
    end

respond_to?(method, include_private = false) click to toggle source
Calls superclass method

    # File lib/sass/util/normalized_map.rb, line 119
    def respond_to?(method, include_private = false)
      super || @map.respond_to?(method, include_private)
    end

respond_to_missing?(method, include_private = false) click to toggle source

    # File lib/sass/util/normalized_map.rb, line 124
    def respond_to_missing?(method, include_private = false)
      @map.respond_to?(method, include_private)
    end

size() click to toggle source

    # File lib/sass/util/normalized_map.rb, line 80
    def size
      @map.size
    end

sort_by() { |k, v| ... } click to toggle source

    # File lib/sass/util/normalized_map.rb, line 102
    def sort_by
      @map.sort_by {|k, v| yield k, v}
    end

to_a() click to toggle source

    # File lib/sass/util/normalized_map.rb, line 88
    def to_a
      @map.to_a
    end

to_hash() click to toggle source

    # File lib/sass/util/normalized_map.rb, line 84
    def to_hash
      @map.dup
    end

update(map) click to toggle source

    # File lib/sass/util/normalized_map.rb, line 106
    def update(map)
      map = map.as_stored if map.is_a?(NormalizedMap)
      map.each {|k, v| self[k] = v}
    end

values() click to toggle source

    # File lib/sass/util/normalized_map.rb, line 68
    def values
      @map.values
    end