私はGem::Dependency#pretty_printメソッドのソースコードを調べています。私は何の引数がq
であるのか分かりません。rubydocからのメソッドの詳細を見つける:Gem :: Dependency#pretty_print
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
?彼らはいくつかの他のオブジェクトに対してこのメソッドを定義しています。
背景と詳細:
私はGemfileを読み取り、それぞれがその説明で宝石を述べ示したスクリプトに取り組んでいます。私は長いリストの宝石を持っている新しいプロジェクトのコードを調べるときはいつでも、各宝石のウェブサイトを見て、その宝石が何をしているかを見るのは難しいです。
rubydocから、私はBundlerがどのようにGemfileを解析するのかを見出しました。そして、この方法に出くわした: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
を引数として渡すことができたことを知りました。
私はそれについてのコメントを得ることができ、改善することができるように私はフローを述べました。
私の提案は少しすぎますが、それは役に立たないかもしれません。byebugや、かなりのプリントの関数定義にデバッグポイントを置くことができます。サンプルのrailsプロジェクト 'bundle install'や' bundle exec rails s' ..関数定義にヒットするかどうかを見てください。これは、qがどのような印字をしているのかを知ることができます。その単なる提案ではなく、確定的な答えでもあります。 debgging目的のためのあなたのレールの宝石ファイル –
@PriyankKapadiaええ、それはオプションの一つです。ありがとう –