gpt4 book ai didi

ruby-on-rails - 如何快速分析给定代码的代码定义

转载 作者:数据小太阳 更新时间:2023-10-29 08:26:03 24 4
gpt4 key购买 nike

假设我在一个非常大的项目中并且很好奇这条线是如何工作的:

authorize! :read_pipeline_schedule, user_project

authorize! 应该是方法名。它是类中的私有(private)函数,还是从父 block 提供的 DSL,或者在 gem 中包含或声明?或者可能一个都没有?

我使用 grep 查找内部代码,使用 Google 查找外部代码(例如 gems),但是我想如果我能看到该方法的调用堆栈,它会很有用。 puts caller 是从我所在的地方打印的,虽然它不能用于分析上述情况。

我想知道最佳实践。

最佳答案

您可以对您的代码和安装的 gem 进行 grep,如果名称足够独特,您将快速找到它的定义和相关用法。但是,如果一个名字很常见,比如 call,那么这种方法就没用了。

Ruby 是一种动态语言,因此是静态分析的噩梦。您可能这是从哪里来的,但您就是不能知道确定。

了解的唯一方法是运行时自省(introspection)。因此,在您的示例中,在该行之前放置一个断点

binding.pry
authorize! :read_pipeline_schedule, user_project

你将退出pry shell。现在你可以做

show-source authorize!

然后查看确切此方法的定义位置。

关于ruby-on-rails - 如何快速分析给定代码的代码定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43922616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com