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