2016 年 10 月 8 日星期六

本周 Rails:为 Ruby 2.4 做准备

张贴者 chancancode

You are reading This Week In Rails!

本周的 Rails 贡献者

本周新闻稿的内容由 19 位撰写它们的个人赞助!

在 Ruby 2.4 中 Fixnum 和 Bignum 已弃用

即将发布的 Ruby 2.4 版本 中的一个显着变更是 FixnumBignum 统一到一个 Integer 类。继这一变更后,遗产类 最近已被弃用

此拉取请求避免通过功能检测触发那些弃用警告。如果你维护引用那些常量的代码,你可能也想在你的项目中采用此模式!

移除 json gem 依赖关系

与整型类的统一相关:引用 rb_cFixumrb_cBignum C 常量的本机扩展也需要更新。

流行的 json gem 是此类本机扩展之一。幸运的是,所有现代版本的 Ruby 都捆绑了 json 库。如果你面向 Ruby 1.9 及更高版本,你可以简单地 移除 json gem 作为依赖关系

已改进

避免提升类版本

早在五月,有人报告了一个 回归:Rails 5 在每个请求上无效化 Ruby 的 class_serial。此内部计数器用于无效化类级别的 方法缓存

该问题追踪到对 instance_exec 的使用。尽管 有希望 在 Ruby 本身内部放松此限制,此补丁至少在 Rails 方面暂时修复了问题。

加速 Time.zone.now

曾经,Time.zone.now 会明显慢于 Time.now(据称慢 25 倍)。此拉取请求极大地缩小了差距。

已修复

避免将 ruby 关键字编译到模板局部

你是否尝试渲染部分同时注入名为“class”或“module”的局部变量?它不起作用,并会给你一个非常奇怪的错误。

此拉取请求通过跳过无效局部变量名称来避免错误,同时仍允许通过 local_assigns 来访问它们。

你可以在 Peter's 博客文章 中了解有关此问题以及此拉取请求背后的故事的更多信息。

消失不见

移除私下的 Action Cable “faye 模式”

你知道 Action Cable 有一个私下的“faye 模式”吗?

没有?很好,因为它现在已经不在了!

总结

本周就是这样,和往常一样,还有更多内容,你可以到 这里 自行查看!

下周见!