1

我想要在每个 IRB 控制台或 Rails 控制台中使用awesome_print的选项。

IRB 控制台现在几乎可以令人满意地工作。如果我运行irb,我可以输入require 'awesome_print'并且它可以工作。

Rails 控制台并不容易。require 'awesome_print'不起作用。我显然必须这样做:

> $LOAD_PATH << '~/.rvm/gems/ruby-2.1.8/gems/awesome_print-1.7.0/lib'

之后,require 'awesome_print'工作正常。

但我绝对不想每次打开 Rails 控制台时都必须输入$LOAD_PATH << '~/.rvm/gems/ruby-2.1.8/gems/awesome_print-1.7.0/lib',然后才能使用. 这似乎很荒谬。require 'awesome_print'awesome_print

那么,如何永久添加 Ruby 的路径$LOAD_PATH

注意:我不想添加awesome_printGemfile任何特定项目中。我希望我的所有Ruby/Rails 项目都awesome_print可以使用。

4

2 回答 2

1

您可以简单地使用 aa~/.irbrc文件并执行以下操作:

require 'awesome_print'

现在,打开另一个 IRB 提示符:

irb(main):003:0> ap hash
{
    "a" => "b"
}

编辑:这在 Rails 中不起作用,似乎是一个已知问题

于 2017-02-01T16:36:19.277 回答
0

将以下内容放入.irbrc

to_load = %w[
  awesome_print
  coderay
  hirb
  pry
  pry-doc
  pry-remote
  pry-theme
  slop
  yard
].join('|')

regexp = Regexp.new( "(#{to_load})" )

Gem.path.each do |path|
  Dir.new("#{path}/gems").each do |gem_path|
    next if %w[ . .. ].any?{ |d| gem_path == d }

    new_el = "#{path}/gems/#{gem_path}/lib"
    $LOAD_PATH << new_el if new_el =~ regexp
  end
end
于 2021-08-27T05:48:30.803 回答