代码之家  ›  专栏  ›  技术社区  ›  Craig Walker

查找构成Ruby类的文件

  •  0
  • Craig Walker  · 技术社区  · 15 年前

    在Ruby中,有什么方法可以确定 文件夹 是否加载和定义/修改了特定类?

    1 回复  |  直到 15 年前
        1
  •  3
  •   wdebeaum    15 年前

    我不认为有一个简单的方法可以正确地做到这一点,但是作为1.9中的近似值,你可以找到 source_location 对于类中的所有方法:

    class Class
      def source_files
        methods.collect { |method_name|
          method(method_name).source_location[0] # just the filename, not the line number
        } |
        instance_methods.collect { |method_name|
          instance_method(method_name).source_location[0]
        }
      end
    end
    

    这还将为您提供定义从超类或包含模块继承的方法的文件,我不确定您是否需要这些方法。除了在类中定义方法之外,还有一些方法可以修改类,但这并不能检测到它们,所以它并不完美。

    推荐文章