2017 年 3 月 4 日,星期六

本周 Rails 概况:发布 5.0.2、更强健的加密密钥等等

作者:claudio

你好!

我是 sunny Los Angeles 的 Claudio,给你带来 Ruby on Rails 世界的最新消息。本周有许多改进,因此……我们开始吧!

Rails 5.0.2 已发布!

继续升级你的 Rails 5 应用程序到最新版本!
v5.0.2 完全向后兼容 v5.0.1 和 v5.0.0。

Google 2017 年度编程大赛

我们非常高兴地宣布 Ruby on Rails 已被接受为 2017 年 Google 编程大赛 (GSoC) 的组织者!

改进

更新密钥以使用现代加密

正如上周宣布的,Rails 5.1 将包含加密密钥。得益于该 PR,密钥将使用更强健的加密算法以增强安全性。

新增

为时区添加 iso8601 和 rfc3339 解析功能

ActiveSupport::TimeZone 现有一个新方法 rfc3339,以获取特定时区的 RFC 3339 时间戳。

在新的应用程序中使用 webpacker 1.0

如果你还没有注意到,rails/webpacker 已退出测试版本阶段并已发布 v1.0。

修复

仅在定义 Puma 时才加载 SystemTestCase

系统测试用例 (Capybara) 是 Rails 5.1 的新功能之一。因为它们仅支持 Puma,所以当 Puma 不存在时不使用它们。

当交易回调未达成 :on 条件时,不要评估 :if 参数

理解回调运行时机是一件棘手的事情。此 PR 在未达成某项前提条件时巧妙地避免了运行它们。

更新 DateTime#change 以支持 usec 和 nsec

如果你需要以微秒和毫微秒更改时间戳,现在你可以这么做了!

弃用

放弃 HashWithIndifferentAccess 常量

如果你在代码中使用了 HashWithIndifferentAccess,你可能需要考虑使用 ActiveSupport::HashWithIndifferentAccess 来代替。

废除 ActiveSupport::Duration 的隐式强制转换

2 * 1.day 这样的代码片段将显示一个警告,建议你不要将 Duration 强制转换为数字,因为它可能会引起混乱,原因是向日期添加/减去一个值会将整数视为一天而不是一秒。

本周还有许多其他优秀的 pull 请求 提交过来,来自 35 位贡献者,包括 12 位首次提交者。谢谢大家!

除了代码更改之外,本周我们还有更多的好消息。

下周再见!