我正在寻找迁移到新的红宝石。问题是什么是新红宝石? 1.9.3有一些patchlevel或2.0有一些patchlevel?
是否有人尝试过迁移?我知道很多代码都不会向后兼容,但是你如何管理生产 - 继续使用旧的ruby代码和旧的ruby代替最新的东西?有什么用RVM破解它?但是再说1.8代码和1.9一起并行运行?
另外,如果我想测试1.8和1.9之间的现有代码compat级别,你会推荐什么?
答案 0 :(得分:1)
回答你的问题:
什么是新的红宝石? - 在ruby-lang.org上你会发现目前Ruby 2.0.0-p274(和Ruby 1.9.3-p448)是最多的最近的版本。如果要迁移到新版本,则应始终选择最新的补丁级别。
是否有人尝试过迁移? - 是的。我一直在使用RVM和rbenv来管理不同的Ruby安装和gemsets(他们都完成了工作)。这样,可以在生产中运行不同的代码。
...测试现有的代码compat级别...... - 这个SO answer(gee ...来自2008 :-))非常全面。如果您有使用1.8特定行为的代码,请编写一个扩展的测试套件,切换到Ruby 2.0.0并比较结果。
顺便说一句:从Ruby 1.8.7切换到1.9.3时我遇到的唯一问题是编码相关,其中一些问题可以通过简单的#encoding: UTF-8
注释来解决。但是,其他(与I / O相关的)代码需要进行一些重构。
我在使用内置(但可切换)的Syck和Psych YAML解析器方面遇到了一些麻烦,它们在序列化BigDecimal
值时表现略有不同,但这是由Rails猴子补丁引起的(将Rails从2.3.x升级到3.2.x或4.0.0是另一个难度级别: - ))。