lib/catissue/migration/migrator.rb
def class_for_name(name)
      begin
        klass = super
        # the 1.1.2 hack described in the rubydoc
        if klass < Annotation::Proxy then
          if klass.name.demodulize == @target_class.hook.name.demodulize then
             klass = @target_class.hook
          else
            raise Jinx::MigrationError.new("Migration configuration class #{name} resolves to the unsupported hidden caTissue 1.1.2 annotation proxy class #{klass}")
          end
        end
        klass
      rescue NameError
        if @target_class < Annotatable then
          @target_class.annotation_class_for_name(name) || raise
        else
          raise
        end
      end
    end
def class_for_name(name)
      begin
        klass = super
        # the 1.1.2 hack described in the rubydoc
        if klass < Annotation::Proxy then
          if klass.name.demodulize == @target_class.hook.name.demodulize then
             klass = @target_class.hook
          else
            raise Jinx::MigrationError.new("Migration configuration class #{name} resolves to the unsupported hidden caTissue 1.1.2 annotation proxy class #{klass}")
          end
        end
        klass
      rescue NameError
        if @target_class < Annotatable then
          @target_class.annotation_class_for_name(name) || raise
        else
          raise
        end
      end
    end
def class_for_name ( name ) begin klass = super # the 1.1.2 hack described in the rubydoc if klass < Annotation :: Proxy then if klass . name . demodulize == @target_class . hook . name . demodulize then klass = @target_class . hook else raise Jinx :: MigrationError . new ( "Migration configuration class #{name} resolves to the unsupported hidden caTissue 1.1.2 annotation proxy class #{klass}" ) end end klass rescue NameError if @target_class < Annotatable then @target_class . annotation_class_for_name ( name ) || raise else raise end end end
@quirk caTissue In caTissue 1.1.2, the  annotation proxy class and hook class have the same demodulized
   name. This confutes the caRuby migration configuration since the name resolves to the proxy in the
   context of an annotation migration target. The proxy class is caTissue DE cruft that should not be
   exposed to the user. Thus, the class name should resolve to the hook class instead. Work around this
   by a special 1.1.2 hack.

 @param [String] the class name to resolve in the context of this migrator
 @return [Class] the corresponding class
 @raise [NameError] if the name cannot be resolved
@quirk caTissue In caTissue 1 . 1 . 2 the annotation proxy class and hook class have the same demodulized name . This confutes the caRuby migration configuration since the name resolves to the proxy in the context of an annotation migration target . The proxy class is caTissue DE cruft that should not be exposed to the user . Thus the class name should resolve to the hook class instead . Work around this by a special 1 . 1 . 2 hack .