【问题标题】:Is there a Ruby library for Golang-style duration parsing?是否有用于 Golang 风格的持续时间解析的 Ruby 库?
【发布时间】:2016-10-20 20:58:02
【问题描述】:
duration_to_sec("3m") => 180

可能类似于 https://gist.github.com/tim-evans/d0ba1e8f05a55b76c49c 的东西,但被包装成一个不错的 gem,或者更好的内部函数来执行此操作。

编辑:我不能使用 ActiveRecord;另外,不是在寻找一个实现。我已经写了一个。只是寻找可能已经实现此功能的 gem。谢谢!

【问题讨论】:

标签: ruby time libraries


【解决方案1】:

看看fugitchronic_duration,两者都能胜任。

fugit 似乎维护得比较好,直接使用的人不多,但它是一些流行 gem 的依赖。

另一方面,chronic_duration 本身更广为人知,但似乎没有得到维护。它也更简单。

我目前正在使用chronic_duration

> ChronicDuration.parse '1m'
 => 60
> ChronicDuration.parse '1m60s'
 => 120

【讨论】:

  • 毫无疑问,这些很酷且功能强大,但如果我是 OP,我会选择捆绑/复制的实现,它非常小并且可以满足我的需求(仅此而已)。宝石被遗弃是原因。
  • 好吧 OP 尽管知道要点并且还编写了自己的实现,特别要求一个 gem。此外,该要点没有测试。如果可以,我会同意这是最好的方法(并且会继续并从中创建一个宝石)。
  • 我想你提到的这两个宝石一开始就很好而且很精简。然后范围蔓延发生了:)
  • 绝对fugit 是一个不错的选择,它是最近的,我不太可能被放弃 - 因为它是一些广泛使用的 gem(rufus-scheduler 和其他)的核心
【解决方案2】:

ActiveSupport 为您提供:

3.minutes # => 180 seconds
3.minutes.to_i # => 180
(3.minutes + 5.hours).to_i # => 18180

【讨论】:

  • 那不是 Golang 风格的。 Golang的持续时间是“3m”、“5h”等格式的字符串,我想将该字符串转换为持续时间描述的秒数。不过感谢您的建议!
猜你喜欢
  • 1970-01-01
  • 2016-06-06
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
相关资源
最近更新 更多