#!/usr/bin/ruby
# Classes and objects
class Task(callback, dependencies=[]) {
method perform {
dependencies.each { .perform };
callback.run;
}
}
var eat = (
Task.new({ say 'eating dinner. NOM!' },
[
Task.new({ say 'making dinner' },
[
Task.new({ say 'buying food' },
[
Task.new({ say 'making some money' }),
Task.new({ say 'going to the store' }),
]
),
Task.new({ say 'cleaning kitchen' })
])
])
);
eat.perform;