class Tins::Deflect::DeflectorCollection

by emulating Ruby’s message dispatch.
This class implements a collection of deflectors, to make them available

def add(klass, id, deflector)


and return self.
Add a new deflector _deflector_ for class _klass_ and method name _id_,
def add(klass, id, deflector)
  k = @classes[klass]
  k = @classes[klass] = {} unless k
  k[id.to_s] = deflector
  self
end

def delete(klass, id)

deflector if any was found, otherwise returns true.
Delete the deflecotor class _klass_ and method name _id_. Returns the
def delete(klass, id)
  if k = @classes[klass]
    d = k.delete id.to_s
    @classes.delete klass if k.empty?
    d
  end
end

def find(klass, id)

it. If none was found, return nil instead.
Try to find a deflector for class _klass_ and method _id_ and return
def find(klass, id)
  klass.ancestors.find do |k|
    if d = @classes[k] and d = d[id.to_s]
      return d
    end
  end
end

def initialize

def initialize
  @classes = {}
end

def member?(klass, id)

_id_, otherwise return false.
Return true if messages are deflected for class _klass_ and method name
def member?(klass, id)
  !!(k = @classes[klass] and k.key?(id.to_s))
end