ruby插件/ gem将cron转换为人类可读的格式

ed1*_*d1t 7 ruby cron gem rubygems

是否有一个红宝石宝石/插件会将*/10***1,3之类的内容转换为"星期一,星期三每10分钟触发一次"?

Mic*_*ohl 3

我什么都不知道,我也没有通过谷歌找到任何东西。不过,你也许可以自己破解一些东西:

>> cron = "*/10 * * * 1,3 foo" 
#=> "*/10 * * * 1,3 foo"
>> min, hour, dom, month, dow, command = cron.split 
#=> ["*/10", "*", "*", "*", "1,3", "foo"]
Run Code Online (Sandbox Code Playgroud)

获得变量后,您就可以开始组装输出的各个部分:

>> require 'date' 
#=> true
>> dow.split(/,/).map { |day| Date::DAYNAMES[day.to_i] } 
#=> ["Monday", "Wednesday"]
>> min.start_with?('*') ? "every #{min.split('/')[1]} minutes" : "#{min} past" 
#=> "every 10 minutes"
>> min = '5' 
#=> "5"
>> min.start_with?('*') ? "every #{min.split('/')[1]} minutes" : "#{min} past" 
#=> "5 past"
Run Code Online (Sandbox Code Playgroud)

显然,这只是一些粗略的想法(例如,您可能需要一个带有捕获组的正则表达式来解析条目),但由于 crontab 条目已明确指定,因此想出适用于大多数情况的东西应该不会太难。您可能会遇到的条目。