Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. object.class.instance_methods # => [:meth1, :meth2,...]
  2. object.instance_variables # => [:@var1, :@var2,..]
  3.  
  4. object.instance_variables.map { |var| object.instance_variable_get(var) }
  5.  
  6. module M
  7. M_constant = "M constant"
  8. def m_method
  9. puts "M#m_instance_method"
  10. end
  11. end
  12.  
  13. class C
  14. include M
  15. attr_accessor :c_instance_variable
  16.  
  17. C_constant = "C constant"
  18.  
  19. @@c_class_variable = 4
  20.  
  21. def self.c_class_method1
  22. puts "c_class_method1"
  23. end
  24.  
  25. def c_method
  26. @c_instance_variable = 0
  27. puts "c_instance_method"
  28. end
  29.  
  30. class << self
  31. attr_accessor :c_class_instance_variable
  32. @c_class_instance_variable = 5
  33. def c_class_method1
  34. puts "c_class_method1"
  35. end
  36. end
  37. end
  38.  
  39. class D < C
  40. end
  41.  
  42. M.constants
  43. #=> [:M_constant]
  44. C.constants
  45. #=> [:A, :C_constant, :M_constant]
  46. C.constants(false)
  47. #=> [:A, :C_constant]
  48. D.constants
  49. #=> [:A, :C_constant, :M_constant]
  50. D.constants(false)
  51. #=> []
  52.  
  53. C.class_variables
  54. #=> [:@@c_class_variable]
  55. C.class_variables(false)
  56. #=> [:@@c_class_variable]
  57. D.class_variables
  58. #=> [:@@c_class_variable]
  59. D.class_variables(false)
  60. #=> []
  61.  
  62. C.new.instance_variables
  63. #=> [:@c_instance_variable]
  64. D.new.instance_variables
  65. #=> []
  66.  
  67. M.instance_methods
  68. #=> [:m_instance_method]
  69. C.instance_methods.size
  70. #=> 57
  71. C.instance_methods(false)
  72. #=> [:c_instance_variable, :c_instance_variable=, :c_method]
  73. D.instance_methods.size
  74. #=> 57
  75. D.instance_methods(false)
  76. #=> []
  77.  
  78. C.singleton_class.instance_methods.size
  79. #=> 102
  80. C.singleton_class.instance_methods(false)
  81. #=> [:c_class_method1, :c_class_instance_variable,
  82. # :c_class_instance_variable=]
  83. D.singleton_class.instance_methods.size
  84. #=> 102
  85. D.singleton_class.instance_methods(false)
  86. #=> []
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement