开源项目 synvert = syntax + convert

flyerhzm · 2014年03月23日 · 最后由 lulalala 回复于 2014年04月29日 · 3522 次阅读

synvert 是我们最近做的非常有趣的开源项目,它可以解析你的 ruby 源代码,根据自定义的规则,查找旧的过期的 ruby 代码,自动替换成新的更美观的 ruby 代码。项目地址在 github 上面,https://github.com/xinminlabs/synvert,文档在这里 http://xinminlabs.github.io/synvert/

现在有 4 个 snippets(自定义的规则)

  1. 使用 FactoryGirl 短语法方法,比如 FactoryGirl.create(:post) 替换成 create(:post)

  2. 替换动态 finders,比如 find_all_by_login_and_email('login', 'email') 替换成 where(login: 'login', email: 'email')

  3. 使用 strong_parameters,在 models 层删除 attr_accessible,在 controllers 层添加 def xxx_params; end

  4. 自动升级 rails 3.2 的项目到 4.0

现在项目还在很初级的阶段,欢迎任何建议和 pull requests

PS, 这个项目也是一个不错的学习写 DSL 的例子

Rails 升级的时候你们 QA 紧张么?

好东西!

遇到不兼容德 gem 包怎么办??

@small_fish__ synvert 只是解决语法层级的问题,基本上是按照 rails 官方的升级文档 http://guides.rubyonrails.org/upgrading_ruby_on_rails.html 一条一条做的,不兼容 gem 包得自己解决

录了一段视频,帮助大家明白如何使用 synvert http://xinminlabs.github.io/synvert/

@flyerhzm 听了你的演讲,感觉超赞的。可惜休息时间找不到你。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号