2010年5月3日,星期一

社区亮点

发布者:Gregg Pollack

又到了总结一些有趣的 Rails 链接,以突出社区的一些优秀成果的时候了。所有这些最初都在 Ruby5 Podcast(每周两次的 Ruby 新闻播报)上进行了介绍。

Rails 3 内容

下一届 Rails3 Bugmash 将于 5 月 15 日和 16 日举行。如果您从未为 Rails 做过贡献,这是您回馈一点并为使 Rails 3 成为有史以来最好的版本尽一份力的时候了。

为了全面了解 Rails 3 中的路由,Rizwan Reza 在 Engine Yard 博客上的一篇文章中 对其进行了最佳的介绍。如果您喜欢 Engine Yard 的 Rails 3 内容,他们最近创建了 Rails Dispatch,他们每周都会在那里发布文章和屏幕录像。

Alex Maccaw 最近使用 Rails 3 ActiveModel 抽象层构建了一个名为 Supermodel 的类似 ActiveRecord 的内存数据库。您将获得所有 ActiveRecord 的优点,例如验证、回调和观察者,而无需数据库的麻烦。

您可能已经知道,Rails 3 中的 arel 库 为我们提供了一种创建查询的绝佳新语法。在底层,arel 通过使用一种称为 PredicateBuilder 的东西将您的 *where* 条件转换为 sql。Ernie Miller 最近发布了一个名为 MetaWhere 的插件,该插件利用这些 PredicateBuilder 为 arel 提供更多功能。

最后,如果您还不清楚 bundler 有多棒,请阅读 Yehuda 最近关于此主题的 博文

授权

您是否曾经需要在模型中访问 *current_user*?当您需要基于每个用户记录模型/表的更改时,这通常是必需的。有很多方法可以实现这一点,但 David Bock 有一个名为 SentientUser 的 gem,它做得更干净一些。

一旦您的网站变得庞大,并且您开始担心恶意的用户攻击,您可能想看看 Arto Bendiken 和 Brendon Murphy 的 Rack::Throttle Middleware。Throttle 正如您所想,允许您限制用户可以 ping 您网站的请求次数(每秒)。

最后,Ryan Bates 发布了他的授权和权限库 CanCan 的 1.1 版本,该库允许您限制用户在整个应用程序中的操作。

服务库

您可能已经听说 Facebook API 现在正在采用 OAuth2。如果您准备好加入,Michael Bleigh 上周刚刚发布了 OAuth2 gem

Rails 为 iPhone 应用程序提供了出色的 RESTful 后端,最近 Anthony Moralez 创建了 APN_on_rails,这使得实现 Apple Push Notifications 非常容易。

如果您的 Rails 应用程序需要电子商务,则无需重复造轮子,这就是 Spree gem 的用武之地,该 gem 最近达到了 0.10.0 版本,包含大量新功能。

测试

您的 Rails 应用程序有一个庞大的测试库,需要花费很长时间才能运行吗?那么,您可能需要看看 Nick Gauthier 的 Hydra,这是一个分布式测试框架,允许您在本地或远程服务器上并行运行测试。

有些人认为 cucumber 对于集成测试来说可能过于冗长(客户可能永远不会阅读)。如果您认为 cucumber 是素食主义者的,那么也许是时候品尝一下 Luismi Cavalle 的 Steak 了。Steak 是一个小型库,可帮助您使用 RSpec 生成快速、干净的验收/集成测试。

谈到 RSpec,有一些新的约定可以清理您旧的 RSpec 代码。如果您还没有开始使用“Let”,那么可能需要查看 Jon Larkowski 的几篇 幻灯片

其他有用库

如果您发现自己遇到奇怪的内存问题,那么可能是时候使用 memprof.com 了,这是 Joe Damato 和 Ruby Hero Aman Gupta 的一项新网络服务。Memprof 允许您收集 Ruby 进程的内存使用信息,并使用直观的网络界面立即上传和查看它。

Rails 应用程序通常包含大量表单,有时您甚至需要让您的客户能够创建不同类型的表单或调查。这就是 Census gem 的用武之地,它提供了一个用于创建表单的管理界面,甚至还可以搜索结果。

最后,delayed_job 最近达到了 2.0 版本,如果您使用的是旧版本,您应该升级。新版本在性能方面有所改进,并增加了对非 ActiveRecord ORM 的支持。

其他内容

要跟踪 Ruby 会议,请查看 Ruby There,它列出了所有即将举行的会议以及提案征集截止日期。

有关更多新闻和库,请查看 Ruby5 podcast。如果您通常不听音频,您可以订阅包含所有涵盖内容的摘要的 RSS feed

如果您有任何想宣传的故事/库,请随时发送电子邮件至 ruby5@envylabs.com,我们会至少在播客中介绍您。谢谢!

图片来源:Blue Sky on Rails by ecstaticist, Analog Solutions 606 Mod by Formication, Rainbow by One Good Bumblebee. Orange County Security by henning, remember by tochis, Darwin Was Right About Media Players! by Neeku, remote controls by redjar.

此帖子已翻译成 白俄罗斯语,由 PC 提供