Ответ 1
"foo".methods
См:
http://ruby-doc.org/core/classes/Object.html
Что такое простой способ узнать, какие методы/свойства предоставляет объект ruby?
В качестве примера для получения информации о члене для строки, в PowerShell вы можете сделать
"" | get-member
В Python
dir("")
Есть ли такой простой способ обнаружить информацию о члене объекта Ruby?
"foo".methods
См:
http://ruby-doc.org/core/classes/Object.html
У Ruby нет свойств. Каждый раз, когда вы хотите получить доступ к переменной экземпляра в другом объекте, вы должны использовать метод для доступа к ней.
Два способа получения объектных методов:
my_object.methods
MyObjectClass.instance_methods
Одна вещь, которую я делаю, чтобы обрезать список унаследованных методов из базового класса Object:
my_object.methods - Object.instance_methods
Чтобы перечислить атрибуты объекта:
object.attributes
Есть два способа сделать это:
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"
object.methods
вернет массив методов в объекте
Используйте это:
my_object.instance_variables