Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:可以扫描Ruby代码的Ruby代码_Ruby On Rails_Ruby_Metaprogramming_Collaboration - Fatal编程技术网

Ruby on rails Rails:可以扫描Ruby代码的Ruby代码

Ruby on rails Rails:可以扫描Ruby代码的Ruby代码,ruby-on-rails,ruby,metaprogramming,collaboration,Ruby On Rails,Ruby,Metaprogramming,Collaboration,我正在和几个贡献者开始一个项目。我们希望跟踪谁编写了什么代码,以及获得参与者编写了多少方法、控制器操作和视图的计数。这需要一个我们都不熟悉的元编程级别 到目前为止,我们想出的最好办法是在每个代码片段之前添加一条注释,其中包含参与者的用户名和一个简短、一致的短语。例如: # method by RacerX def a_useful_method . . . end # method by MysteryProgrammer123 def another_useful_method .

我正在和几个贡献者开始一个项目。我们希望跟踪谁编写了什么代码,以及获得参与者编写了多少方法、控制器操作和视图的计数。这需要一个我们都不熟悉的元编程级别

到目前为止,我们想出的最好办法是在每个代码片段之前添加一条注释,其中包含参与者的用户名和一个简短、一致的短语。例如:

# method by RacerX
def a_useful_method
  . . .
end

# method by MysteryProgrammer123
def another_useful_method
  . . .
end

# action by MysteryProgrammer123
def new
  . . .
end
然后,我们将运行一个方法来统计每个用户在整个项目中编写的
action by
method by
view by
的所有实例。不幸的是,我们不知道如何编写能够检查其他Ruby代码的Ruby代码。这甚至可能是不可能的。如果可能的话,怎么做


或者,可能有一个我们没有考虑的更好的方法。

与其重新发明轮子,不如使用现成的工具。如果您没有想到如何实现这样的代码,那么您可能无法编写这样的代码。一个文档工具,例如,可能很有用。其工作方式是在方法定义之前添加解释作为注释。通常,这是为了编写供用户阅读的文档,但您可以偏离其预期用途,编写程序员姓名或任何其他您喜欢的信息。

与其重新发明轮子,不如使用现成的工具。如果您没有想到如何实现这样的代码,那么您可能无法编写这样的代码。一个文档工具,例如,可能很有用。其工作方式是在方法定义之前添加解释作为注释。通常,这是为了编写供用户阅读的文档,但您可以偏离其预期用途,编写诸如程序员姓名或任何其他您喜欢的信息。

您应该更喜欢您的源代码管理系统来跟踪谁编写了什么,例如,可以生成一个带注释的列表,显示作者和源代码行


识别视图应该很容易,它们位于视图目录中。静态方法定义通常可以通过regexp
/\bdef\s+(?:\w+\)(\w+)\b/
找到。将“操作”与其他方法区分开来可能需要根据常见的操作名称和通过检查路由发现的其他名称筛选方法名称。

您应该更希望您的源代码管理系统跟踪谁写了什么,例如,可以生成一个带注释的列表,显示作者和源代码行


识别视图应该很容易,它们位于视图目录中。静态方法定义通常可以通过regexp
/\bdef\s+(?:\w+\)(\w+)\b/
找到。将“操作”与其他方法区分开来可能需要根据常见操作名称和通过检查路由发现的其他名称筛选方法名称。

如何计算一个人编写的、另一个人更改的方法?我会尝试挖掘git的输出,而不是依赖人们对他们编写的代码进行注释。这是一个非常糟糕的想法。让一个程序产生关于其自身的指标是完全错误的。使用Git或任何其他VCS,扔掉元代码和注释标记。如何计算由一个人编写而由另一个人更改的方法?我会尝试挖掘git的输出,而不是依赖人们对他们编写的代码进行注释。这是一个非常糟糕的想法。让一个程序产生关于其自身的指标是完全错误的。使用Git或任何其他VCS,扔掉元代码和注释标记。感谢您让我了解YARD。在这一点上,我将使用git bull,但是YARD在将来将是一个方便的工具。这是你应该走的路。谢谢你让我知道院子的事。在这一点上,我将使用git bull,但是YARD在将来将是一个方便的工具。那是你应该走的路,太好了。这大大简化了事情。这大大简化了事情。