synvert 是我们最近做的非常有趣的开源项目,它可以解析你的 ruby 源代码,根据自定义的规则,查找旧的过期的 ruby 代码,自动替换成新的更美观的 ruby 代码。项目地址在 github 上面,https://github.com/xinminlabs/synvert,文档在这里 http://xinminlabs.github.io/synvert/
现在有 4 个 snippets(自定义的规则)
使用 FactoryGirl 短语法方法,比如 FactoryGirl.create(:post)
替换成 create(:post)
替换动态 finders,比如 find_all_by_login_and_email('login', 'email')
替换成 where(login: 'login', email: 'email')
使用 strong_parameters,在 models 层删除 attr_accessible
,在 controllers 层添加 def xxx_params; end
自动升级 rails 3.2 的项目到 4.0
现在项目还在很初级的阶段,欢迎任何建议和 pull requests
PS, 这个项目也是一个不错的学习写 DSL 的例子