programacion objetos metodos manejo lista herencia ejemplos clases clase ruby discoverability

objetos - ¿Descubrir a los miembros del objeto Ruby?



metodos en ruby (6)

Dos formas de obtener los métodos de un objeto:

my_object.methods MyObjectClass.instance_methods

Una cosa que hago para eliminar la lista de métodos heredados de la clase base del objeto:

my_object.methods - Object.instance_methods

Para enumerar los atributos de un objeto:

object.attributes

¿Cuál es una manera fácil de descubrir qué métodos / propiedades expone un objeto ruby?

Como ejemplo para obtener información de miembro para una cadena, en PowerShell, puede hacer

"" | get-member

En Python,

dir("")

¿Existe una manera tan fácil de descubrir la información del miembro de un objeto Ruby?


Hay dos maneras de lograr esto:

obj.class.instance_methods(false) , donde ''falso'' significa que no incluirá métodos de la superclase, por ejemplo, teniendo:

class Person attr_accessor :name def initialize(name) @name = name end end p1 = Person.new ''simon'' p1.class.instance_methods false # => [:name, :name=] p1.send :name # => "simon"

el otro es con:

p1.instance_variables # => [:@name] p1.instance_variable_get :@name # => "simon"


Ruby no tiene propiedades. Cada vez que desee acceder a una variable de instancia dentro de otro objeto, debe usar un método para acceder a ella.


Utilizar esta:

my_object.instance_variables



object.methods

devolverá una matriz de métodos en el objeto