これは、Ruby on Rails アプリケーションの商売繁盛で見つけたヘルパー メソッドです。
ここで何が起こっているのか、特に 12 行目の capture() メソッドについて理解を深めようとしていますが、これは今まで見たことのないものです。指定されたブロックがある場合はそれをキャプチャしますが、それ以外の場合はコンテンツはありません。しかし、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