ANN map-1.4.0

NAME
  map.rb

SYNOPSIS
  the ruby container you've always wanted: a string/symbol indifferent
ordered
  hash that works in all rubies

INSTALL
  gem install map

URI
  http://github.com/ahoward/map

DESCRIPTION

# maps are ordered. constructing them in an ordered fashion builds
them that
# way

···

#
  m = Map[:k, :v, :key, :val]
  m = Map(:k, :v, :key, :val)

  m = Map[[:k, :v], [:key, :val]]
  m = Map[{:k => :v, :key => :val}]

  m = Map.new
  m[:a] = 0
  m[:b] = 1
  m[:c] = 2

  p m.keys #=> ['a','b','c'] ### always ordered!
  p m.values #=> [0,1,2] ### always ordered!

# maps don't care between symbol and string keys
#
  p m[:a] #=> 0
  p m["a"] #=> 0

# many functions operate in a way one would expect from an ordered
container
#
  m.update(:k2 => :v2)
  m.update(:k2, :v2)

# maps keep mapiness for even deep operations
#
  m.update :nested => {:hashes => {:are => :converted}}

# maps can give back clever little struct objects
#
  m = Map(:foo => {:bar => 42})
  s = m.struct
  p s.foo.bar #=> 42

USAGE
  test/map_test.rb