问题标签 [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.
ruby - 是什么阻止您编写特定于 ruby 1.9 的代码?
到目前为止,我只是将 YARV (ruby 1.9) 用作比 ruby 1.8 更快的 ruby 实现,并确保我的所有代码都向后兼容 ruby 1.8.6。什么情况(如果有的话)阻止您编写特定于 1.9 的代码?
每个答案一个原因。
ruby - ruby 1.8.6 什么时候会退役?
我似乎找不到任何有关此的信息... ruby 1.8.6 何时“退休”?ruby 1.8.7 在保持语法兼容性的同时功能更强大,而 ruby 1.9.1 在各个方面都明显更好......知道什么时候 1.8.6 会退役吗?
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
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 的编码更改。
ruby-on-rails - 比较 ruby 中的两个相似的哈希值
我正在使用 ruby 1.8.7,我需要比较我拥有的两个哈希值,它们本质上是模型的属性。Hash A 比 Hash B 小,Hash B 具有 hash A 的所有属性,加上一些我不关心的额外属性。我的首要目标是查看 A 的元素是否与 B 的相应元素相同。例如
现在它变得比这更复杂一些,因为这些字段并不完全匹配,即使它们引用了相同的信息
我正在做的是一个比较两个匹配项的过程,如果字段发生了变化,并且只有当它们发生变化时才更新它。或者如果找不到匹配的项目,则创建一个新项目。更改哈希本身的名称不是一种选择。目前我只是比较私有方法中的每个字段,看看它们是否相等。
我觉得必须有更好的方法,我正在寻找比这更快、更优雅的方法。
ruby - 如何在 Ruby 1.8.5 中重新传递多个方法参数?
我正在使用 ruby 1.8.5,我想使用辅助方法来帮助过滤用户的偏好,如下所示:
这在 ruby 1.8.6 中有效,但是当我尝试在 1.8.5 中执行此操作并尝试发送多个 arg 时,我收到如下错误:
参数数量错误(X 为 2)
其中 X 是特定方法所需的参数数量。我宁愿不重写我所有的通知方法——Ruby 1.8.5 可以处理这个吗?
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 - 它有点重,它需要 rubygems 基础架构并包含大量其他解决方法,而我只想
require
使用相关文件。 - 更奇怪的结构:
StackOverflow 上有一个密切相关的问题,它提供了更多示例,但没有给出明确的答案——这是最佳实践。
是否有任何体面的、被所有人接受的通用解决方案来让我的应用程序同时在 Ruby <1.9.2 和 >=1.9.2 上运行?
更新
澄清:我不想要像“你可以做 X”这样的答案——事实上,我已经提到了大多数有问题的选择。我想要基本原理,即为什么它是最佳实践,它的优点和缺点是什么以及为什么应该在其他方法中选择它。
ruby-on-rails - 我正在运行 Rails 2.3.4 应用程序,想知道是否应该升级到 3.0?
我正在开发一个应用程序并且使用 Rails 2.3.4 已经有一段时间了,但我想知道我是否应该尝试更新,或者继续等待,永远不要升级,我想我有几个选择。
我正在使用 ruby 1.8.7 我也需要升级它吗?
这有多难/这会破坏多少代码,我会有很多意想不到的结果吗?
任何输入将不胜感激,我有点迷失了。
ruby - 如何在 Ruby 1.8 中使用枚举器运行代码?
我有这样的代码
它不起作用
我知道枚举器在 Ruby 1.8 中作为扩展可用。如何安装它?(我是红宝石新手)