我怎么知道是否正在使用一个贩卖的宝石?

Rom*_*man 3 ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我继承了一个以前由多个开发人员传递的旧项目.这是一个糟糕的形状,所以我试图让它恢复生机.我注意到有一些宝石和库已被出售到项目中,但无法判断它们是否被使用或者是什么!

如果项目中不再使用某些宝石,我该如何锻炼?

And*_*ore 5

检查这个的便捷方法是使用REPL.我建议安装pry-rails gem,它将简单地用可能更强大的Pry REPL替换默认的rails控制台(IRB).

#Gemfile

group :development do
  pry-rails
end
Run Code Online (Sandbox Code Playgroud)

运行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
Run Code Online (Sandbox Code Playgroud)

有关如何使用此特定内置命令的更多用法示例,请参阅Pry的内联help系统:

   help show-source
Run Code Online (Sandbox Code Playgroud)

或者在Pry的wiki上查看Source浏览页面.