class Enumerize::AttributeMap

def <<(attr)

def <<(attr)
  @attributes[attr.name.to_s] = attr
  @dependants.each do |dependant|
    dependant << attr
  end
end

def [](name)

def [](name)
  @attributes[name.to_s]
end

def add_dependant(dependant)

def add_dependant(dependant)
  @dependants << dependant
  each do |attr|
    dependant << attr
  end
end

def each

def each
  @attributes.each_pair do |_name, attr|
    yield attr
  end
end

def empty?

def empty?
  @attributes.empty?
end

def initialize

def initialize
  @attributes = {}
  @dependants = []
end