1 - Overview¶ ↑
Program modifies itself
Removes boiler-plate code
2 - Java¶ ↑
Annotations
@
3 - Ruby¶ ↑
Monkey-patching Passing blocks to methods
attr_accessor send
Rails: ActiveRecord associations
module Spree class BscReq < ActiveRecord::Base has_one :line_item, class_name: "Spree::LineItem" ... end end Spree::LineItem.class_eval do belongs_to :bsc_req, class_name: "Spree::BscReq" end
4 - C/C++¶ ↑
C = macros
C++ = templates