Ruby ができることを知らなかった 10 のことのスライド 30 で、ジェームズ・エドワード・グレイ II が言及しています。
ruby -e 'puts { is_this_a_block }' --dump parsetree
生産する
###########################################################
## Do NOT use this node dump for any purpose other than ##
## debug and research. Compatibility is not guaranteed. ##
###########################################################
# @ NODE_SCOPE (line: 1)
# +- nd_tbl: (empty)
# +- nd_args:
# | (null node)
# +- nd_body:
# @ NODE_ITER (line: 1)
# +- nd_iter:
# | @ NODE_FCALL (line: 1)
# | +- nd_mid: :puts
# | +- nd_args:
# | (null node)
# +- nd_body:
# @ NODE_SCOPE (line: 1)
# +- nd_tbl: (empty)
# +- nd_args:
# | (null node)
# +- nd_body:
# @ NODE_VCALL (line: 1)
# +- nd_mid: :is_this_a_block
ここに出力された情報は実行時に利用できますか? もしそうなら、その情報は単に書き留められたコードを表しているだけですか、それとも実行されたメタプログラミングの結果も含んでいますか?