Debugging 如何将Pry提示符设置为当前时间戳?

Debugging 如何将Pry提示符设置为当前时间戳?,debugging,configuration,pry,pry-rails,Debugging,Configuration,Pry,Pry Rails,当我将以下行放入~/.pryrc中时,它无法按预期工作: Pry.config.prompt_name = Time.now.to_s 每个提示都等于Pry启动的时间 如何在每次显示提示时(每次调用后)使用当前时间戳更新提示?您需要使用提示而不是提示名称 Pry.config.prompt = Proc.new { |output, value| Time.now.to_s[0..-6] } 为了让任何人觉得这很有用,我以以下方式将时间戳添加到.pryrc: def rails\u提示符

当我将以下行放入
~/.pryrc
中时,它无法按预期工作:

Pry.config.prompt_name = Time.now.to_s
每个提示都等于Pry启动的时间


如何在每次显示提示时(每次调用后)使用当前时间戳更新提示?

您需要使用
提示
而不是
提示名称

Pry.config.prompt = Proc.new { |output, value| Time.now.to_s[0..-6] } 

为了让任何人觉得这很有用,我以以下方式将时间戳添加到
.pryrc

def rails\u提示符
#可能这只是作为“pry”而不是“rails控制台”运行,所以请先检查
是否返回“”,除非已定义?轨道
应用程序环境=
如果Rails.env.production?
放置“\n\e[1m\e[41M警告:您正在生产中使用RAILS控制台!\n”\
“更改数据可能会导致严重的数据丢失。\n”\
“确保您知道自己在做什么。\e[0m\e[22m\n\n”
“\e[31m{Rails.env[0…4]}\e[0m”#红色
其他的
“\e[32m{Rails.env[0…4]}\e[0m”#绿色
结束
“(\e[1m{app_env}\e[22m)”#粗体
结束
now=proc{Time.new.strftime('%T%Z')}#或所需的时间格式
#对于较旧的pry版本
def_proc=proc{| target_self,嵌套级别,撬|
“[#{pry.input_array.size}][#{now.call}]”\
“(#{Pry.view_clip(target_self)})”\
“#{”:#{nest_level}”除非nest_level.zero?}{rails_prompt}”
}
Pry.config.prompt=[
proc{t,n,p}“{def|u proc.call(t,n,p)}>”,
proc{t,n,p}“{def|u proc.call(t,n,p)}*”}
]
#对于较新版本
Pry::Prompt.add(:default_with_time,'相同的默认值,但带有时间戳')do
|上下文,嵌套,pry_实例,sep|
格式(
“[%s][%s]%s(%s)%s%s%s”,
in_count:pry_instance.input_ring.count,
时间戳:现在,打电话,
名称:pry_instance.config.prompt_name,
上下文:撬动视图剪辑(上下文),
rails\u提示符:rails\u提示符,
嵌套:(nesting.positive??:{nesting}”:“”,
分隔符:sep
)
结束
Pry.config.prompt=Pry::prompt[:带时间的默认值][:值]
然后您将得到如下提示: