Я пришел из Java и хочу знать, могу ли я «установить» переменную экземпляра для объекта с помощью самоанализа.
Например, если у меня есть следующее объявление класса, с двумя переменными экземпляра, first_attribute
и second_attribute
:
class SomeClass
attr_accessor :first_attribute
attr_reader :second_attribute
def initialize()
# ...
end
end
Я хочу иметь возможность получить методы экземпляра, предположительно, путем вызова SomeClass.instance_methods
и узнать, какие из этих методов экземпляра доступны для чтения / записи, а не просто для чтения-только.
В Java я могу сделать это следующим образом:
PropertyDescriptor[] properties = PropertyUtils.GetPropertyDescriptors(SomeClass);
for (prop : properties) {
if (prop.getWriteMethod() != null) {
// I can set this one!
}
}
Как мне это сделать в Ruby?