2014-12-13 26 views
0

因此,有一个叫做active_emoji的jokey回购,它基本上为Ruby方法增加了一大堆emoji别名。Ruby中的非大写常数名称

它还包括这样的:

= Numeric 

class 
    alias step 
end 

然而,尝试写一些规格为回购协议时,它失败

active_emoji/lib/active_emoji/core_ext/numeric.rb:3: class/module name must be CONSTANT (SyntaxError) 

有没有被承认为迫使表情符号的一种方式是一个常数?我假设这个错误是因为Ruby看到那个表情符号符号不大写...

回答

2

错误实际上是由于:

class 

第一行,其中分配Numeric给一个变量,在IRB中工作正常。所以,别名step方法。但是Ruby只会接受class [ConstantName] - 这里你不能使用变量。

+0

那么除了修补Ruby Class类本身之外,没有办法改变它吗? – 2014-12-17 16:58:35

+0

@PeterSouter:是的,没办法改变这种情况。它基本上是在解析器中进行硬编码的。 – 2014-12-17 18:10:26