В ruby 1.9 условия на конец строки были смягчены, так что теперь мы можем начать строку с периода, показывающего вызов метода. Это удобно, когда мы смешали цепочечные и нецепные методы и хотим показать, где начинается следующий нецепной. Без этой новой функции лучшее, что мы могли бы сделать, это, вероятно, использовать отступ:
method1(args1).
method2(args2).
method3(args3)
method4(args4).
method5(args5).
method6(args6)
или вставьте пустую строку. Но это было неудобно, потому что мы должны обращать внимание на отступы, и в то же время не забывать ставить точку после каждого вызова метода, кроме последнего в цепочке. Из-за этого я создал так много ошибок, имеющих дополнительный или отсутствующий период. С новой функцией мы можем сделать это намного лучше:
method1(args1)
.method2(args2)
.method3(args3)
method4(args4)
.method5(args5)
.method6(args6)
, где период визуально функционирует как отступ от маркера.
Проблема в том, что, когда вы хотите вставить комментарии перед строкой, начинающейся с точки, она возвращает ошибку.
method1(args1)
# method2 does blah blah
.method2(args2)
# method3 then does foo foo
.method3(args3)
method4(args4)
# method5 does blah blah
.method5(args5)
# method6 then does bar bar
.method6(args6)
# => error
или
method1(args1)
# method2 does blah blah
.method2(args2)
# method3 then does foo foo
.method3(args3)
method4(args4)
# method5 does blah blah
.method5(args5)
# method6 then does bar bar
.method6(args6)
# => error
Кажется, что "#...."
не просто отбрасывается, а каким-то образом взаимодействует с кодом. Что происходит? Какое точное ограничение здесь? Когда периоды были в конце строки, этого не произошло.
method1(args1).
# method2 does blah blah
method2(args2).
# method3 then does foo foo
method3(args3)
method4(args4).
# method5 does blah blah
method5(args5).
# method6 then does bar bar
method6(args6)
# => no error