问题标签 [ruby-2.1]

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 投票
5 回答
9290 浏览

ruby - 我可以在 Ruby 2.x 中要求命名参数吗?

Ruby 2.0 正在添加命名参数,如下所示:

如何在不提供默认值的情况下使用命名参数,以便它们是必需的?

0 投票
2 回答
1840 浏览

ruby - Ruby 2.1 冻结字符串

Ruby 2.1 将有一个冻结字符串,因此每次解释器运行时都不会重新创建对象,即

为什么解释器不能自动检测到这个字符串不会改变并自动冻结它?

或者,pre-ruby 2.1 一旦解释器开始运行,任何代码如何更改这样的字符串?如果我们说“abcd”需要被冻结,那么一定有某种方法可以改变它。

-- 更新:上面的问题已经更新,所以下面的评论有点尴尬,但解决了之前不太好的代码示例。

-- 更新: http: //globaldev.co.uk/2014/05/ruby-2-1-in-detail/ Ruby 密钥会自动冻结。

0 投票
1 回答
291 浏览

ruby - 为什么文字字符串应该从 Frozen 开始?(红宝石 2.1)

在开发 Ruby 2.1 之后,我读到了一个可能会添加的功能,因此允许开发人员指定文字字符串应该从“冻结”开始。

语法如下所示(注意尾随f):

其他 Ruby 文档/wiki中,我读到此功能提供以下好处:

这允许 VM 每次都使用相同的字符串对象,并且可能跨多个文件使用相同的冻结字符串。它显然还提供了冻结字符串的所有不变性保证。

我的问题是:

  • 这有什么好处?
  • 当这样的功能提供价值时,现实世界的例子是什么?
  • 这与 a 有何不同symbol

谢谢

0 投票
2 回答
885 浏览

ruby - 为什么用 Ruby 2.1 编写的代码必须能够被 Ruby 2.0 解释器解析?

在 Ruby Core 中,"foo"f已经为 Ruby 2.1 提出了一种新的冻结字符串的文字表示法,但现在人们担心用这种语法编写的代码将无法被 Ruby 2.0 解析。为什么这是个问题?Ruby 不是只尝试向后兼容吗?也就是说,如果用 Ruby 2.0 编写的代码可以被 Ruby 2.1 解释器解析,那还不够吗?为什么用 Ruby 2.1 编写的代码必须能够被 Ruby 2.0 解释器解析?

0 投票
2 回答
578 浏览

ruby - 如何在 Ruby 2.1 中获取给定 UTF-8 代码的字符

我想知道是否有办法获取给定 UTF-8 代码的字符?

例如:

0 投票
2 回答
76 浏览

ruby - Ruby 2.1.0 中的 Object#define_singelton_method 定义了私有方法?

失败private method `foo' called for #<Object:0x00000001e89580> (NoMethodError)。Ruby 2.0.0 的行为并非如此。这是 2.1.0 中的错误还是有意更改?

0 投票
1 回答
120 浏览

ruby - ArgumentError 是否缺少 backtrace_locations?

当我调用时Exception#backtrace_locations,它通常会按预期返回一个数组:

如果我ArgumentError手动提出一个,这也是一样的:

ArgumentError但是,当我通过调用具有错误数量参数的方法来引发 real 时, backtrace_locationsis nil,这对我来说是出乎意料的:

在相同的情况下,经典Exception#backtrace返回一个数组,如预期的那样:

上述第三种情况的返回值是Exception#backtrace_locations有意nil的吗?如果是这样,什么时候Exception#backtrace_locations成为nil?有这方面的文件吗?或者,它是一个 Ruby 错误?

在这一点上,我认为这是一个错误,并报告了它

0 投票
2 回答
8683 浏览

ruby - 为什么 rvm install ruby​​-2.1.0 会安装 preview1?

我刚尝试安装 Ruby 2.1,却得到了 2.1 Preview 1。这对我来说似乎很疯狂。2.1出来了。当我rvm install ruby-2.1.0说我的意思时,为什么 RVM 会假设?为什么它不匹配我指定的确切版本,而不是以该子字符串开头的版本?rvm install ruby-2.1.0-preview1

0 投票
2 回答
9319 浏览

nginx - nginx:[emerg]“passenger_root”指令中的参数数量无效

我正在尝试第一次在 EC2 上设置 Rubber (complete_passenger_nginx_postgresql)。我更改了配置文件中的一系列设置,以使其适用于不同的 AMI(Ubuntu 12.04.3 LTS - ami-a73264ce(64 位))、Ruby 2.1.0、Passenger 4.0.29 和 Nginx 1.4.4 . 我几乎让它工作了,但是在启动 Nginx 时它失败了,并出现以下错误:

Rubber-passenger_nginx.yml 的“passenger_root”代码如下:

知道我应该改变什么才能让它工作吗?

0 投票
4 回答
12764 浏览

ruby-on-rails - Ruby 2.1.0 / 2.1.1 / 2.1.2 不支持调试器 gem

我刚刚将我的 RVM Ruby 安装升级到 2.1.0 版,并在遇到以下错误时尝试捆绑安装:

这个错误当然是不言自明的,但我想知道是否有办法让 Debugger gem 与最新版本的 Ruby 一起工作?