site/meta_block.rb

tests/_examples/site/meta_block.rb in the metorex repository.

def capture(&block) = block

rule = capture { |order| order * 2 }
p rule.arity
p rule.statements.first
p rule.call(21)

Output:

1
{"type" => "BinaryOp", "op" => "*", "left" => {"type" => "Identifier", "name" => "order"}, "right" => {"type" => "IntLiteral", "value" => 2}}
42