2017-10-27 5 views
0

私はGem::Dependency#pretty_printメソッドのソースコードを調べています。私は何の引数がqであるのか分かりません。ruby​​docからのメソッドの詳細を見つける: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 repopretty_printを検索しました。彼らには、このメソッドを使用する仕様も関数もありません。入力として何が必要なのかを私はどのように知ることができますq?彼らはいくつかの他のオブジェクトに対してこのメ​​ソッドを定義しています。

背景と詳細:

私はGemfileを読み取り、それぞれがその説明で宝石を述べ示したスクリプトに取り組んでいます。私は長いリストの宝石を持っている新しいプロジェクトのコードを調べるときはいつでも、各宝石のウェブサイトを見て、その宝石が何をしているかを見るのは難しいです。

ruby​​docから、私は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を引数として渡すことができたことを知りました。

私はそれについてのコメントを得ることができ、改善することができるように私はフローを述べました。

+1

私の提案は少しすぎますが、それは役に立たないかもしれません。byebugや、かなりのプリントの関数定義にデバッグポイントを置くことができます。サンプルのrailsプロジェクト 'bundle install'や' bundle exec rails s' ..関数定義にヒットするかどうかを見てください。これは、qがどのような印字をしているのかを知ることができます。その単なる提案ではなく、確定的な答えでもあります。 debgging目的のためのあなたのレールの宝石ファイル –

+0

@PriyankKapadiaええ、それはオプションの一つです。ありがとう –

答えて

0

pretty_print方法は、ppによって使用されます。

pretty_printと定義することにより、documentationの出力としてppの出力をカスタマイズすることができます。

関連する問題