从 ruby​​doc 中查找有关方法的更多信息:Gem::Dependency#pretty_print

Find more about a method from rubydoc: Gem::Dependency#pretty_print

我正在查看 Gem::Dependency#pretty_print 方法的源代码。我不明白 q 是什么参数。

def pretty_print q # :nodoc:
  q.group 1, 'Gem::Dependency.new(', ')' do
    q.pp name
    q.text ','
    q.breakable

    q.pp requirement

    q.text ','
    q.breakable

    q.pp type
  end
end

我的问题是,接下来我该做什么。我在他们的 Github repo 中搜索了 pretty_print。他们没有任何规格,也没有使用此方法的任何功能。我怎么知道它需要什么作为输入q?他们已经为其他几个对象定义了这个方法。

背景和更多细节:

我正在编写一个脚本,该脚本读取 Gem 文件并显示每个提到的 Gem 及其描述。每当我浏览任何包含一长串 Gem 的新项目的代码时,很难浏览每个 Gem 的网站并查看 Gem 的功能。

我从 ruby​​doc 中找到了 Bundler 如何解析 Gem 文件。并遇到了这种方法:Bundler::Dsl#evaluate

def self.evaluate(gemfile, lockfile, unlock)
  builder = new
  builder.eval_gemfile(gemfile)
  builder.to_definition(lockfile, unlock)
end

这里也没有提到应该传递什么作为gemfile, lockfile, unlock。我在他们的 Git 仓库中搜索了 evaluate 方法。我找到了规范,我了解到我可以将 "Gemfile", nil, true 作为参数传递。

我提到流程是为了让我能得到任何评论并改进。

pretty_print 方法将由 pp 使用。

通过定义 pretty_print 我们可以根据 documentation.

自定义 pp 的输出