pry(main)> $LOAD_PATH.unshift './lib' pry(main)> require 'my_gem'みたいなのを毎度やっていた。
誰かの gem の挙動を確認したいなーというだけならまだいいけど、自分で開発している時に何度もやるのはめんどくさい。
そんな時に役に立つのが
.pryrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Pry::DEFAULT_HOOKS.add_hook(:before_session, :gem_auto_require) do |out, target, _pry_| | |
dir = `pwd`.chomp | |
gem_name = File.basename(dir) | |
if File.exist?(File.join(dir, "#{gem_name}.gemspec")) | |
lib = File.join(dir, 'lib') | |
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) | |
if File.exist?(File.join(lib, "#{gem_name}.rb")) | |
begin | |
require gem_name | |
rescue LoadError => e | |
puts "gem_auto_require: #{e.message}" | |
end | |
end | |
end | |
end |
カレントディレクトリに
my_gem.gemspec
ファイルがあれば gem だと判断し、 lib/my_gem.rb
があれば自動的に require してくれる。