Ruby - Advanced Metaprogramming
Consider this code:
class Tracker
def initialize
@events = []
[:start, :stop].each do |event|
define_method(event) { @events << event }
end
end
def events
@events
end
end
tracker = Tracker.new
tracker.start
tracker.stop
tracker.start
puts tracker.events.inspect
What is the output?