Не могу заставить работать гем awesome_print
awesome_print выглядит довольно симпатично, поэтому я хотел попробовать его.
Я пошел в один из моих проектов и сделал:
gem install awesome_print
и он говорит, что один драгоценный камень установлен, документация установлена и т. д.
Затем, пока я нахожусь в этом проекте, я пошел к своей консоли Rails, чтобы попробовать его, но когда я сделал require "awesome_print"
как говорится в их справочном файле, я получаю сообщение "не могу загрузить такой файл".
Кто-нибудь получил это на работу?
7 ответов
gem install
поместит код драгоценного камня на ваш компьютер, но если файлы исходного кода драгоценного камня не находятся на вашем пути загрузки, require
не смогу их найти. bundle exec
смотрит на ближайший Gemfile.lock
и добавляет исходный код для всех драгоценных камней, перечисленных там, к вашему пути загрузки. Инициализация Rails включает в себя то, что Bundler сделает это за вас.
Одним из решений является добавление awesome_print
в ваш Gemfile. Однако это приведет к тому, что ваше приложение awesome_print
как зависимость. В качестве альтернативы вы можете вручную добавить awesome_print
Библиотека к вашему пути загрузки после запуска консоли Rails и последующего требования:
$ rails c
> $LOAD_PATH << path/to/awesome_print-x.x.x/lib
> require 'awesome_print'
> ap {foo: {bar: {baz: :qux}}}
Если вы используете RVM, путь, вероятно, будет что-то вроде
~/.rvm/rubies/ruby-x.x.x-pxxx@your_gemset_name/gems/awesome_print-x.x.x/lib
Добавьте его в свой Gemfile следующим образом:
gem 'awesome_print', :require => 'ap'
Я добавляю это в группу разработчиков, так как это единственный раз, когда мне это нужно. У этого драгоценного камня нет других зависимостей, поэтому я обычно добавляю его в свой Gemfile.
Кроме того, добавьте эти две строки в файл ~/.irbrc, чтобы установить ap
быть вашим пейджером по умолчанию:
require "awesome_print"
AwesomePrint.irb!
Обратите внимание, что если вы используете это, однако, любые проекты, где awesome_print не установлен в его Gemfile, вызовут эту ошибку при запуске rails c
:
cannot load such file -- awesome_print
В зависимости от того, что еще у вас может быть в вашем файле ~/.irbrc, это может вызвать другие побочные эффекты, такие как испортить ваш запрос. Чтобы избежать этого, просто добавьте две строки в самый конец этого файла.
установить его:
$ gem install awesome_print
включите его в свой GemFile, если хотите:
gem 'awesome_print', :require => 'ap'
добавьте эту строку в файл ~/.irbrc:
require 'awesome_print'
AwesomePrint.irb!
перезагрузите вашу оболочку!
просто примечание: я сделал это, и это не сработало сразу, вероятно, нужно перезагрузить компьютер... или мне просто нужно было закрыть все вкладки оболочки и снова открыть терминал!
Установите драгоценный камень на свою машину
gem install awesome_print
Получить путь, по которому он установлен
gem which awesome_print
Добавьте следующую конфигурацию в свой ~/.irbrc
а также ~/.pryrc
. Это будет загружать Awesome Print всякий раз, когда вы запускаетеIRB
или pry
сеанс.
*Помнить $LOAD_PATH
будет удерживать все, что вы получили от набора текста gem which awesome_print
# ~/.irbc and ~/.pryrc
$LOAD_PATH << "~/.asdf/installs/ruby/2.6.3/lib/ruby/gems/2.6.0/gems/awesome_print-1.8.0/lib/"
require "awesome_print"
AwesomePrint.irb!
Если вы хотите установить его, не имея в своем Gemfile, вот как это сделать:
$ gem install awesome_print
Я столкнулся с проблемой, когда он успешно устанавливался, но не в нужном каталоге.
В этом случае просто поместите это в ваш.bashrc, это установит путь загрузки:
export PATH="/home/user/.gem/ruby/2.3.0/bin:$PATH"
PATH="`ruby -e 'puts Gem.user_dir'`/bin:$PATH"
замените 2.3.0 версией ruby, с которой вы работаете.
замените пользователя своим именем или, если вы используете vagrant, замените его на vagrant
перезагрузите ваш.bashrc или выйдите из Терминала, чтобы перезагрузить изменения, затем снова установите гем.
В моем случае я боролся с PATH и т. Д., Но упускал что-то очевидное!
# which ruby
/usr/bin/ruby
# ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]
# locate bin/ruby
/usr/bin/ruby
/usr/local/Cellar/ruby/2.7.2/bin/ruby
/usr/local/opt/ruby/bin/ruby
# /usr/local/opt/ruby/bin/ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin17]
#
Ага! Версия сырой. Я использовал старый рубин. Спасибо, Apple!
# sudo mv /usr/bin/ruby /usr/bin/ruby_2.3.7
# sudo ln /usr/local/opt/ruby/bin/ruby /usr/bin/ruby
Решил проблему!
Вероятно, я мог бы кое-что сказать
brew
делать, чтобы исправить положение, но я был нетерпеливым. :-)
Одна вещь, которая работала для меня, состояла в том, что после ввода 'require 'awesome_print'' я бы поставил 'ap command',
Например:
ap Event.all