3

以前に複数の開発者から受け継がれてきた古いプロジェクトを継承しました。調子が悪いので、生き返らせようとしています。プロジェクトにベンダーされているgemとlibがいくつかあることに気付きましたが、それらが使用されているかどうか、または何を使用しているかがわかりません。

それらの宝石のいくつかがプロジェクトで使用されなくなった場合、どうすればトレーニングできますか?

4

2 に答える 2

5

これをチェックする便利な方法は、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のソースブラウジングページをご覧ください。

于 2013-03-17T11:59:12.093 に答える
1

あなたがそれをするのを助けるいくつかの簡単なトリックがあります。たとえばputs caller、gemのルートファイルをiに配置して、どこかから呼び出されるかどうかを確認できます。

次のようなrubyに組み込まれているトレース機能を使用することもできます:http://apidock.com/ruby/Kernel/set_trace_func

または外部トレースツールを使用します。

于 2013-03-17T11:57:49.453 に答える