snipplrCallback({"id":28363,"title":"jruby-jetlang-example","source":"
  1. require<\/span> "java"<\/span><\/div><\/li>
  2. require<\/span> "jetlang-0.2.0.jar"<\/span><\/div><\/li>
  3.  <\/div><\/li>
  4. include_class "org.jetlang.fibers.ThreadFiber"<\/span><\/div><\/li>
  5. include_class "org.jetlang.channels.MemoryChannel"<\/span><\/div><\/li>
  6.  <\/div><\/li>
  7.  <\/div><\/li>
  8. class<\/span> Arnie<\/div><\/li>
  9. def<\/span> initialize(<\/span>channel, consumer)<\/span><\/div><\/li>
  10. @channel<\/span> = channel<\/div><\/li>
  11. @consumer<\/span> = consumer<\/div><\/li>
  12. end<\/span><\/div><\/li>
  13. def<\/span> start<\/div><\/li>
  14. on_receive = Proc<\/span>.new<\/span> do<\/span> |<\/span>message|<\/span><\/div><\/li>
  15. case<\/span> message<\/div><\/li>
  16. when<\/span> "The End"<\/span><\/div><\/li>
  17. puts<\/span> "I will be back..."<\/span><\/div><\/li>
  18. @consumer<\/span>.dispose<\/span><\/div><\/li>
  19. @consumer<\/span>.join<\/span><\/div><\/li>
  20. when<\/span> "Terminate"<\/span><\/div><\/li>
  21. puts<\/span> "Hastala vista baby!!!"<\/span><\/div><\/li>
  22. else<\/span><\/div><\/li>
  23. puts<\/span> "You are terminated******"<\/span><\/div><\/li>
  24. end<\/span><\/div><\/li>
  25. end<\/span><\/div><\/li>
  26. @channel<\/span>.subscribe<\/span>(<\/span>@consumer, on_receive)<\/span><\/div><\/li>
  27. @consumer<\/span>.start<\/span><\/div><\/li>
  28. end<\/span><\/div><\/li>
  29. def<\/span> ^(<\/span>message)<\/span><\/div><\/li>
  30. @channel<\/span>.publish<\/span>(<\/span>message)<\/span><\/div><\/li>
  31. end<\/span><\/div><\/li>
  32. end<\/span><\/div><\/li>
  33.  <\/div><\/li>
  34. terminator = Arnie.new<\/span>(<\/span>MemoryChannel.new<\/span>, ThreadFiber.new<\/span>)<\/span><\/div><\/li>
  35. terminator.start<\/span><\/div><\/li>
  36. terminator ^ "Terminate"<\/span><\/div><\/li>
  37. terminator ^ "Buy me icecream"<\/span><\/div><\/li>
  38. terminator ^ "The End"<\/span><\/div><\/li>
  39. terminator ^ "Terminate"<\/span> # Will not execute as terminator is already dead...<\/span><\/div><\/li><\/ol><\/pre>","link":"https:\/\/snipplr.com\/view\/28363\/jruby-jetlang-example"});