Subscribed unsubscribe Subscribe Subscribe

Pryのコマンドの結果を取得

出力後、nilが返されるから取れない。取りたい

pry> require 'stringio'
pry> output = StringIO.new
pry> Pry.run_command('$ String#to_s', { output: output })

# 例えばコマンドの結果をgrepしたい
[9] pry(main)> puts output.string.split("\n").grep(/VAL/)
static VALUE
rb_str_to_s(VALUE str)
=> nil

# そのまま表示したければそのままputとか.
pry> puts output.string

From: string.c (C Method):
Number of lines: 8
Owner: String
Visibility: public

static VALUE
rb_str_to_s(VALUE str)
{
    if (rb_obj_class(str) != rb_cString) {
    return str_duplicate(rb_cString, str);
    }
    return str;
}
=> nil

こういうの~/.pryrcにでも書いとくとすぐ使えると思う。