def derive_mapper_from_item(item)
      klass = item.class
      namespaces = klass.name.split("::")[0...-1]
      begin
        return build_mapper_class(namespaces, klass)
      rescue NameError
        klass = next_class_for_lookup(item, namespaces, klass)
        retry if klass
      end
      raise_mapper_not_found(item)
    end
def derive_mapper_from_item(item)
      klass = item.class
      namespaces = klass.name.split("::")[0...-1]
      begin
        return build_mapper_class(namespaces, klass)
      rescue NameError
        klass = next_class_for_lookup(item, namespaces, klass)
        retry if klass
      end
      raise_mapper_not_found(item)
    end
Derives a mapper from the given item. This item should not
 be a collection.

 @param item [Object]
 @return [Class] A mapper, typically a subclass of Yaks::Mapper

 @raise [RuntimeError] only occurs when no mapper is found for the given item.