Guest User

Untitled

a guest
Jul 18th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. # Output
  2. # p1_a.call(1) => proc1 - a - 1
  3. # p1_b.call(2) => proc1 - b - 2
  4. # p2_o.call(3) => proc2 - o - 3
  5. # p2_p.call(4) => proc2 - p - 4
  6. # TestClass.m_block(&p1_a) => method TestClass.m_block yield(100) => proc1 - a - 100
  7. # TestClass.m_block(&p1_b) => method TestClass.m_block yield(101) => proc1 - b - 101
  8. # TestClass.m_block(&p2_o) => method TestClass.m_block yield(102) => proc2 - o - 102
  9. # TestClass.m_block(&p2_p) => method TestClass.m_block yield(103) => proc2 - p - 103
  10.  
  11. class TestClass
  12. @@counter = 99
  13. class << self
  14. def count
  15. @@counter += 1
  16. @@counter
  17. end
  18. def proc1(create_name)
  19. method_name = 'proc1'
  20. Proc.new { |arg|
  21. "#{method_name} - #{create_name} - #{arg}"
  22. }
  23. end
  24. def proc2(create_name)
  25. method_name = 'proc2'
  26. Proc.new { |arg|
  27. "#{method_name} - #{create_name} - #{arg}"
  28. }
  29. end
  30. def m_block
  31. n = TestClass.count
  32. "method TestClass.m_block yield(#{n}) => #{yield n}"
  33. end
  34. end
  35. end
  36.  
  37. p1_a = TestClass.proc1 "a"
  38. p1_b = TestClass.proc1 "b"
  39. p2_o = TestClass.proc2 "o"
  40. p2_p = TestClass.proc2 "p"
  41.  
  42. puts "p1_a.call(1) => #{p1_a.call(1)}"
  43. puts "p1_b.call(2) => #{p1_b.call(2)}"
  44. puts "p2_o.call(3) => #{p2_o.call(3)}"
  45. puts "p2_p.call(4) => #{p2_p.call(4)}"
  46.  
  47. puts "TestClass.m_block(&p1_a) => #{TestClass.m_block(&p1_a)}"
  48. puts "TestClass.m_block(&p1_b) => #{TestClass.m_block(&p1_b)}"
  49. puts "TestClass.m_block(&p2_o) => #{TestClass.m_block(&p2_o)}"
  50. puts "TestClass.m_block(&p2_p) => #{TestClass.m_block(&p2_p)}"
Add Comment
Please, Sign In to add comment