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

前端之家收集整理的这篇文章主要介绍了ruby插件/ gem将cron转换为人类可读的格式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有一个ruby宝石/插件会将* / 10 * * * 1,3之类的内容转换为“星期一,星期三每10分钟触发一次”?

解决方法

没有什么我知道的,我也没有找到任何与谷歌有关的东西.你可以自己一起破解:
  1. >> cron = "*/10 * * * 1,3 foo"
  2. #=> "*/10 * * * 1,3 foo"
  3. >> min,hour,dom,month,dow,command = cron.split
  4. #=> ["*/10","*","1,3","foo"]

拥有vars后,您可以开始为输出组装零件:

  1. >> require 'date'
  2. #=> true
  3. >> dow.split(/,/).map { |day| Date::DAYNAMES[day.to_i] }
  4. #=> ["Monday","Wednesday"]
  5. >> min.start_with?('*') ? "every #{min.split('/')[1]} minutes" : "#{min} past"
  6. #=> "every 10 minutes"
  7. >> min = '5'
  8. #=> "5"
  9. >> min.start_with?('*') ? "every #{min.split('/')[1]} minutes" : "#{min} past"
  10. #=> "5 past"

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

猜你在找的Ruby相关文章