代码之家  ›  专栏  ›  技术社区  ›  Peter Brown

Rails自定义弃用通知

  •  23
  • Peter Brown  · 技术社区  · 15 年前

    有没有一种方法可以为我计划删除并希望记录其使用情况的应用程序中的方法和/或关联创建自定义弃用通知?我的一个模型中有一个关系,我不想继续使用它,并计划在以后重构代码。每次调用该方法时,我都希望在我的开发日志中创建一个通知。

    类似于。。。

    irb(main):001:0> 1.id
    (irb):1: warning: Object#id will be deprecated; use Object#object_id
    => 3
    
    4 回复  |  直到 15 年前
        1
  •  42
  •   Eugene Bolshakov    13 年前

    在Rails 3中,您可以使用: "deprecate" method from ActiveSupport :

    class Example
      def foo
      end
    
      deprecate :foo
    end
    

    它将为您的方法创建别名,并输出带有堆栈跟踪的警告。您也可以直接使用此功能的某些部分,例如:

    ActiveSupport::Deprecation.warn("Message")
    

        2
  •  6
  •   Alan Peabody    15 年前

    也许 吧:

    def old_relationship
      warn "[DEPRECATION] old_relationship is deprecated."
      @old_relationship
    end
    
    def old_relationship=(object)
      warn "[DEPRECATION] old_relationship is deprecated."
      @old_relationship = object
    end
    

    为了一段关系而做的事情。

        3
  •  2
  •   John Feminella    15 年前

    在大多数情况下,您可以发出警告并调用新方法。

    class Example
      # <b>DEPRECATED:</b> Please use <tt>good_method</tt> instead.
      def bad_method
        warn "`bad_method` is deprecated. Use `good_method` instead."
        good_method
      end
    
      def good_method
        # ...
      end
    end
    

        4
  •  1
  •   facundofarias Ashay Batwal    8 年前

    Yard 而不是 rdoc

    # @deprecated Please use {#useful} instead
    

    最后,如果你坚持 tomdoc ,使您的评论如下所示:

    # Deprecated: Please use `useful` instead