[хотел снять этот комментарий с ответа CMS, но я полагаю, что мне еще не разрешено. : -P]
Вот небольшая функция, которую я использовал для обработки парсинга этой проблемы (функция будет продолжать делать правильную вещь после того, как реализации браузера догонят спецификацию, поэтому не нужно не забудьте изменить код позже):
function parse(type) {
return typeof type == 'string' ? JSON.parse(type) : type;
}
Это сокращение для tags.map (&: name.to_proc) .join ('' )
Если foo
является объектом с методом to_proc
, то вы можете передать его методу как & foo
, который вызовет foo .to_proc
и использовать его как блок метода.
Метод Symbol # to_proc
изначально был добавлен ActiveSupport, но был интегрирован в Ruby 1.8.7. Это его реализация:
class Symbol
def to_proc
Proc.new do |obj, *args|
obj.send self, *args
end
end
end
Это сокращение для tags.map {| tag | tag.name} .join ('')
Это эквивалентно
def tag_names
@tag_names || tags.map { |tag| tag.name }.join(' ')
end