Guest User

Untitled

a guest
Jun 21st, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. def growl( msg ); `growlnotify -m "#{msg}"`; end
  4.  
  5. NUMBERS = {:one=>1,:two=>2,:three=>3,:four=>4,:five=>5,:six=>6,:seven=>7,
  6. :eight=>8,:nine=>9,:ten=>10,:eleven=>11,:twelve=>12,:thirteen=>13,
  7. :fourteen=>14,:fifteen=>15,:sixteen=>16,:seventeen=>17,:eighteen=>18,
  8. :nineteen=>19,:twenty=>20}.freeze
  9.  
  10. class Proc
  11. attr_accessor :value
  12.  
  13. def +( nxt )
  14. sleep 60*NUMBERS[self.value]
  15. growl "#{self.value.to_s.capitalize}..."
  16. nxt.call
  17. nxt
  18. end
  19. end
  20.  
  21. class Object
  22. def method_missing( m, *args )
  23. proc = lambda{ sleep 60*NUMBERS[m]; growl "...plus #{m}!" }
  24. proc.value = m
  25. proc
  26. end
  27. end
  28.  
  29. one + two # And it stacks, so + three + four + five works just dandy
Add Comment
Please, Sign In to add comment