Постоянно добавить каталог в Ruby $LOAD_PATH
Я бы хотел использовать параметр awesome_print в каждой консоли IRB или консоли Rails.
Консоль 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'
работает отлично.
Но я определенно не хочу печатать $LOAD_PATH << '~/.rvm/gems/ruby-2.1.8/gems/awesome_print-1.7.0/lib'
а потом require 'awesome_print'
каждый раз, когда я открываю консоль Rails, чтобы иметь возможность использовать awesome_print
, Это кажется смешным.
Итак, как я могу постоянно добавить путь к Ruby's $LOAD_PATH
?
Примечание: я не хочу добавлять awesome_print
к Gemfile
любого конкретного проекта. я хочу awesome_print
быть доступным для всех моих проектов Ruby/Rails.
2 ответа
Вы можете просто использовать ~/.irbrc
подать и сделать:
require 'awesome_print'
Теперь откройте еще одно приглашение IRB:
irb(main):003:0> ap hash
{
"a" => "b"
}
Изменить: это не работает в рельсах, кажется, известная проблема.
помещает следующее в
.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