问题标签 [ruby-1.8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
1327 浏览

ruby - 是什么阻止您编写特定于 ruby​​ 1.9 的代码?

到目前为止,我只是将 YARV (ruby 1.9) 用作比 ruby​​ 1.8 更快的 ruby​​ 实现,并确保我的所有代码都向后兼容 ruby​​ 1.8.6。什么情况(如果有的话)阻止您编写特定于 1.9 的代码?

每个答案一个原因。

0 投票
5 回答
220 浏览

ruby - ruby 1.8.6 什么时候会退役?

我似乎找不到任何有关此的信息... ruby​​ 1.8.6 何时“退休”?ruby 1.8.7 在保持语法兼容性的同时功能更强大,而 ruby​​ 1.9.1 在各个方面都明显更好......知道什么时候 1.8.6 会退役吗?

0 投票
1 回答
34655 浏览

ruby - Ruby 需要“文件”和相对位置

所以我正在编写一些 rspec 测试,但我对我缺乏对 Ruby 的理解感到尴尬。

我的文件结构如下所示:

  • GUI_Tests/Tests/test_spec.rb
  • GUI_Tests/windows_gui.rb
  • GUI_Tests/upload_tool.rb

当我为 test_spec.rb 文件运行规范时,我需要像这样包含 upload_tool 文件:

然后,upload_tool 需要 windows_gui.rb,如下所示:

我的问题是,为什么我必须参考相对于 test_spec.rb(需要 ../)而不是 upload_tool.rb 的 windows_gui.rb?这对我来说感觉不对,我想在测试规范之外使用upload_tool.rb,这意味着每次都改变需求。

显然我遗漏了一些东西,但如果我没有参考相对于测试规范的内容,我会得到一个找不到文件的错误。

抱歉在这里如此无知,但我空手而归。任何想法表示赞赏。

BB

0 投票
1 回答
1577 浏览

ruby - 如何在 Google SketchUp 中更新 Ruby?

目前 Google SketchUp for Mac 有1.8.5我觉得有点过时的 Ruby 版本。我可以通过以下命令将 Ruby 更新到 1.8.7(OSX 版本)

SketchUp 启动没有问题,Ruby 控制台显示版本 1.8.7。

1.9.2

现在我尝试更进一步并更新到1.9.2-rc2. Google SketchUp 需要i386二进制,可以通过以下命令生成

然后我将必要的文件复制到 SketchUp:

当我尝试启动 SketchUp 时,我收到以下错误报告

你能告诉我为什么吗?

更新1

Dan Rathbun做了一些测试,发现如下

在 Win32 上,当我试图让 Sketchup 加载任何 1.9.x 时,我得到了 ruby​​ C 函数“rb_set_kcode”的“Entry point not found”,它不再在 1.9.x 中(它被重命名,而 Ruby 人没有将旧名称别名为新名称。)

基本上 Sketchup 在加载 Ruby 解释器后调用 rb_set_kcode 将字符编码设置为 UTF8。它适用于 1.8.x 分支中的任何 Ruby,但在 1.9.x 中,Ruby 项目完全重新设计了字符编码,并为所有 C 函数提供了新标识符,并添加了更多函数。

1.9.x 和 Sketchup 的解决方案似乎是 Sketchup 需要是“Ruby Version Agile”,这意味着 Google Guys 在 Boulder 的编码更改。

0 投票
4 回答
2654 浏览

ruby-on-rails - 比较 ruby​​ 中的两个相似的哈希值

我正在使用 ruby​​ 1.8.7,我需要比较我拥有的两个哈希值,它们本质上是模型的属性。Hash A 比 Hash B 小,Hash B 具有 hash A 的所有属性,加上一些我不关心的额外属性。我的首要目标是查看 A 的元素是否与 B 的相应元素相同。例如

现在它变得比这更复杂一些,因为这些字段并不完全匹配,即使它们引用了相同的信息

我正在做的是一个比较两个匹配项的过程,如果字段发生了变化,并且只有当它们发生变化时才更新它。或者如果找不到匹配的项目,则创建一个新项目。更改哈希本身的名称不是一种选择。目前我只是比较私有方法中的每个字段,看看它们是否相等。

我觉得必须有更好的方法,我正在寻找比这更快、更优雅的方法。

0 投票
2 回答
1431 浏览

ruby - Ruby 1.8.6 和 1.9.1 之间的主要区别是什么?

可能重复:
Ruby 1.8 和 Ruby 1.9 有什么区别

我发现全局变量和局部变量的解释存在一些差异。

谁能指出我的主要差异列表?

0 投票
1 回答
189 浏览

ruby - 如何在 Ruby 1.8.5 中重新传递多个方法参数?

我正在使用 ruby​​ 1.8.5,我想使用辅助方法来帮助过滤用户的偏好,如下所示:

这在 ruby​​ 1.8.6 中有效,但是当我尝试在 1.8.5 中执行此操作并尝试发送多个 arg 时,我收到如下错误:

参数数量错误(X 为 2)

其中 X 是特定方法所需的参数数量。我宁愿不重写我所有的通知方法——Ruby 1.8.5 可以处理这个吗?

0 投票
11 回答
73389 浏览

ruby - Ruby:require vs require_relative - 在 Ruby <1.9.2 和 >=1.9.2 中运行的解决方法的最佳实践

如果我想require在 Ruby 中创建一个相对文件并且希望它在 1.8.x 和 >=1.9.2 中都可以工作,那么最佳实践是什么?

我看到几个选项:

  • 做就$LOAD_PATH << '.'忘记一切
  • $LOAD_PATH << File.dirname(__FILE__)
  • require './path/to/file'
  • 检查是否RUBY_VERSION< 1.9.2,然后定义require_relative为,然后在需要的任何地方require使用require_relative
  • 检查是否require_relative已经存在,如果存在,请尝试像以前的情况一样继续
  • 使用奇怪的结构,例如/code>- 唉,它们似乎并不能完全在 Ruby 1.9 中工作,因为例如:/li>
  • 更奇怪的结构:/code>似乎有效,但它很奇怪而且看起来不太好看。
  • 使用backports gem - 它有点重,它需要 ruby​​gems 基础架构并包含大量其他解决方法,而我只想require使用相关文件。

StackOverflow 上有一个密切相关的问题,它提供了更多示例,但没有给出明确的答案——这是最佳实践。

是否有任何体面的、被所有人接受的通用解决方案来让我的应用程序同时在 Ruby <1.9.2 和 >=1.9.2 上运行?

更新

澄清:我不想要像“你可以做 X”这样的答案——事实上,我已经提到了大多数有问题的选择。我想要基本原理,即为什么它是最佳实践,它的优点和缺点是什么以及为什么应该在其他方法中选择它。

0 投票
1 回答
178 浏览

ruby-on-rails - 我正在运行 Rails 2.3.4 应用程序,想知道是否应该升级到 3.0?

我正在开发一个应用程序并且使用 Rails 2.3.4 已经有一段时间了,但我想知道我是否应该尝试更新,或者继续等待,永远不要升级,我想我有几个选择。

我正在使用 ruby​​ 1.8.7 我也需要升级它吗?

这有多难/这会破坏多少代码,我会有很多意想不到的结果吗?

任何输入将不胜感激,我有点迷失了。

0 投票
3 回答
522 浏览

ruby - 如何在 Ruby 1.8 中使用枚举器运行代码?

我有这样的代码

它不起作用

我知道枚举器在 Ruby 1.8 中作为扩展可用。如何安装它?(我是红宝石新手)