2017-01-10 9 views
-1

Короткий вопрос:
Что такое «переводить» слово и почему оно окрашено как особенное в моей среде IDE?Что такое «переводить» ключевое слово do в Ruby

Длинный вопрос:
Я делаю проект Одина, и код в 04_pig_latin Руби и RSpec упражнения должны выглядеть следующим образом:

def translate(string) 
    # some code 
end 

Per спецификации, которые мне нужно пройти:

describe "#translate" do 

    it "translates a word beginning with a vowel" do 
    s = translate("apple") 
    expect(s).to eq("appleay") 
    end 

end 

В моем Cloud9 IDE слово translate окрашено в синий цвет (например, require или render), поэтому я предполагаю, что я не могу использовать его как имя метода и ему нужно будет изменить заданный тест RSpec, чтобы передать его. Однако я видел, что другие, выполняющие эту задачу, назову этот метод translate без каких-либо проблем.

Я ничего не нашел об этом «ключевом слове», что могло бы сделать его уникальным, я не знаю, что он на самом деле делает, и не знаю, является ли это уникальность от Ruby или Cloud9.

Link to exercises repo

+2

Ваша IDE ошибочна. 'translate' не означает ничего особенного в Ruby. –

+1

Это имя функции, и именно так синтаксис IDE выделяет имена функций. –

+0

редактор cloud9IDE обычно не выделяет имена методов в рубиновых файлах. Так что это просто ошибка. Вы можете игнорировать его. –

ответ

2

Каждый рубин подсветка синтаксиса библиотеки часто включает в себя общие фразы, которые используются в таких вещах, как Rails. Например, belongs_to, но не специальное ключевое слово в смысле Ruby, очень часто встречается в приложениях Rails, поэтому он часто выделяется.

translate может быть специальной фразой, а также использоваться многими библиотеками I18N.

Единственный способ узнать наверняка - это посмотреть на правила выделения синтаксиса, используемые вашим редактором. Обычно там есть список специальных имен методов.