Подтвердить что ты не робот

Обнаружение членов объекта Ruby?

Что такое простой способ узнать, какие методы/свойства предоставляет объект ruby?

В качестве примера для получения информации о члене для строки, в PowerShell вы можете сделать

"" | get-member

В Python

dir("")

Есть ли такой простой способ обнаружить информацию о члене объекта Ruby?

4b9b3361

Ответ 2

У Ruby нет свойств. Каждый раз, когда вы хотите получить доступ к переменной экземпляра в другом объекте, вы должны использовать метод для доступа к ней.

Ответ 3

Два способа получения объектных методов:

my_object.methods
MyObjectClass.instance_methods

Одна вещь, которую я делаю, чтобы обрезать список унаследованных методов из базового класса Object:

my_object.methods - Object.instance_methods

Чтобы перечислить атрибуты объекта:

object.attributes

Ответ 4

Есть два способа сделать это:

obj.class.instance_methods(false), где "false" означает, что он не будет включать в себя методы суперкласса, поэтому, например, имея:

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"

другой:

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

Ответ 5

object.methods

вернет массив методов в объекте

Ответ 6

Используйте это:

my_object.instance_variables