classes_and_objects.sf 589 B

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/ruby
  2. # Classes and objects
  3. class Task(callback, dependencies=[]) {
  4. method perform {
  5. dependencies.each { .perform };
  6. callback.run;
  7. }
  8. }
  9. var eat = (
  10. Task.new({ say 'eating dinner. NOM!' },
  11. [
  12. Task.new({ say 'making dinner' },
  13. [
  14. Task.new({ say 'buying food' },
  15. [
  16. Task.new({ say 'making some money' }),
  17. Task.new({ say 'going to the store' }),
  18. ]
  19. ),
  20. Task.new({ say 'cleaning kitchen' })
  21. ])
  22. ])
  23. );
  24. eat.perform;