Pry をカスタマイズする方法
参考:
Customization and configuration · pry/pry Wiki – GitHub
.pryrc ファイル
参考:
Pry rc · pry/pry Wiki – GitHub
プラグインの扱い
pry-*
という名前の gem を Bundler でバンドルすると自動的に読み込まれる。
コマンドラインから実行時にプラグインを読み込まない。
$ pry --no-plugins
.pryrc
でプラグインを読み込まない指定をする。
Pry.config.should_load_plugins = false
個別にプラグインを無効にする。
Pry.plugins["doc"].disable!
個別にプラグインを有効にする。
Pry.plugins["doc"].activate!
参考:
Plugins · pry/pry Wiki – GitHub
Available plugins · pry/pry Wiki – GitHub
Railsにてbinding.pryを使うためのGemについて – teratail
Hooks
参考:
`rails console`で、各実行の開始・終了時刻を自動で表示する方法 – Qiita
gem 開発が少し便利になる .pryrc | tail -f pinzo.log
Method: Pry::Hooks#add_hook — Documentation for pry | RubyDoc.info
pry/hooks.rb at v0.12.2 · pry/pry – GitHub
コマンドを定義する
参考:
Pry が真の力を発揮してくれる19個のコマンドとコマンドの自作方法 | 酒と涙とRubyとRailsと
Command system · pry/pry Wiki – GitHub
Custom commands · pry/pry Wiki – GitHub
block_command
コマンドの本体をブロックで与えてコマンドを定義する。
参考:
Method: Pry::CommandSet#block_command — Documentation for pry | RubyDoc.info
create_command
コマンドの本体をクラスで与えてコマンドを定義する。
参考:
Method: Pry::CommandSet#create_command — Documentation for pry | RubyDoc.info
takes_block / command_block
takes_block: true
を指定するとコマンドがブロックを受け取れるようになる。ブロックは command_block
として渡される。
コマンドにブロックを渡す場合は、| {
または | do
でブロックを開始して行内でブロックを終了する必要がある。
使用例:
ls
コマンドの出力を Ruby の配列として取得する。
> .ls app/controllers | { |o| instance_variable_set(:@list, o.split) } > p @list
参考:
Command options – Custom commands · pry/pry Wiki – GitHub
Argument parsing – Custom commands · pry/pry Wiki – GitHub
Method: Pry::Command#command_block — Documentation for pry | RubyDoc.info
pry/shell_command.rb at v0.12.2 · pry/pry – GitHub
複数行の入力/コピペのカスタマイズ
参考: