以前に複数の開発者から受け継がれてきた古いプロジェクトを継承しました。調子が悪いので、生き返らせようとしています。プロジェクトにベンダーされているgemとlibがいくつかあることに気付きましたが、それらが使用されているかどうか、または何を使用しているかがわかりません。
それらの宝石のいくつかがプロジェクトで使用されなくなった場合、どうすればトレーニングできますか?
以前に複数の開発者から受け継がれてきた古いプロジェクトを継承しました。調子が悪いので、生き返らせようとしています。プロジェクトにベンダーされているgemとlibがいくつかあることに気付きましたが、それらが使用されているかどうか、または何を使用しているかがわかりません。
それらの宝石のいくつかがプロジェクトで使用されなくなった場合、どうすればトレーニングできますか?
これをチェックする便利な方法は、REPLを使用することです。pry-rails gemをインストールすることをお勧めします。これにより、デフォルトのRailsコンソール(IRB)が間違いなくより強力なPryREPLに置き換えられます。
#Gemfile
group :development do
pry-rails
end
を実行bundle install
し、Railsコンソールをで起動しbundle exec rails c
ます。Pryに入ると、組み込みshow-source
コマンドを使用して、特定のメソッドが実装されている場所を検索できます。例:
>> show-source ActiveRecord::Base.establish_connection
From: /home/andrea/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_specification.rb @ line 128:
Owner: #<Class:ActiveRecord::Base>
Visibility: public
Number of lines: 11
def self.establish_connection(spec = ENV["DATABASE_URL"])
resolver = ConnectionSpecification::Resolver.new spec, configurations
spec = resolver.spec
unless respond_to?(spec.adapter_method)
raise AdapterNotFound, "database configuration specifies nonexistent # {spec.config[:adapter]} adapter"
end
remove_connection
connection_handler.establish_connection name, spec
end
この特定の組み込みコマンドの使用方法に関するその他の使用例については、Pryのインラインhelp
システムを参照してください。
help show-source
または、Pryのwikiのソースブラウジングページをご覧ください。
あなたがそれをするのを助けるいくつかの簡単なトリックがあります。たとえばputs caller
、gemのルートファイルをiに配置して、どこかから呼び出されるかどうかを確認できます。
次のようなrubyに組み込まれているトレース機能を使用することもできます:http://apidock.com/ruby/Kernel/set_trace_func
または外部トレースツールを使用します。