Это вспомогательный метод, который я нашел в коммерческом приложении ruby on rails.
Я пытаюсь лучше понять, что здесь происходит, особенно с методом capture () в строке 12,никогда не видел раньше.Если задан блок, он захватывает его, в противном случае нет содержимого.Но откуда берется метод capture ()?что он делает?
11 def hook(hook_name, locals = {}, &block)
12 content = block_given? ? capture(&block) : ''
13 result = Spree::ThemeSupport::Hook.render_hook(hook_name, content, self, locals)
14 block_given? ? concat(result.to_s) : result
15 end