Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 17th, 2012  |  syntax: None  |  size: 0.92 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. understand self for attr_accessor class method
  2. class Test
  3.   class << self
  4.     attr_accessor :some
  5.  
  6.     def set_some
  7.       puts self.inspect
  8.       some = 'some_data'
  9.     end
  10.     def get_some
  11.       puts self.inspect
  12.       some
  13.     end
  14.   end
  15. end
  16.  
  17. Test.set_some => Test
  18. puts Test.get_some.inspect => Test nil
  19.        
  20. class Test
  21.   class << self
  22.     attr_accessor :some
  23.  
  24.     def set_some
  25.       puts self.inspect
  26.       self.some = 'some_data'
  27.     end
  28.     def get_some
  29.       puts self.inspect
  30.       self.some
  31.     end
  32.   end
  33. end
  34.  
  35. Test.set_some => Test
  36. puts Test.get_some.inspect => Test some_data
  37.        
  38. Test.some = 'new_data'
  39. puts Test.some.inspect #=> new_data
  40. Test.set_some
  41. puts Test.get_some.inspect => new_data
  42.        
  43. def some= (val)
  44.   @some = val
  45. end
  46.  
  47. def some
  48.   return @some
  49. end
  50.        
  51. def set_some
  52.   puts self.inspect
  53.   some = 'some_data'
  54. end
  55.        
  56. @some = 'some_data'
  57.        
  58. self.some = 'some_data'
  59.        
  60. def get_some
  61.   puts self.inspect
  62.   self.some
  63. end