Załóżmy, że mam klasę A
Jak zdobyć atrybuty, które zostały zdefiniowane przez attr_reader lub attr_accessor
class A
attr_accessor :x, :y
def initialize(x,y)
@x, @y = x, y
end
end
Jak mogę uzyskać x
i y
atrybuty, nie wiedząc, jak dokładnie zostały nazwane.
E.g.
a = A.new(5,10)
a.attributes # => [5, 10]
Uwaga: attrs powróci * wszystkie * zmienne instancji, a nie tylko te ujawnione przez 'attr_accessor' – Jonah
@Jonah: tak, to było wtedy założenie. Bardziej precyzyjną metodę można odnieść do [tej odpowiedzi] (http://stackoverflow.com/a/34440466/125816). –