What's the shortest, one-liner way to list all methods defined with attr_accessor
? I would like to make it so, if I have a class MyBaseClass
, anything that extends that, I can get the attr_accessor
's defined in the subclasses. Something like this:
class MyBaseClass < Hash def attributes # ?? end end class SubClass < MyBaseClass attr_accessor :id, :title, :body end puts SubClass.new.attributes.inspect #=> [id, title, body]
What about to display just the attr_reader
and attr_writer
definitions?
Extract the attributes in to an array, assign them to a constant, then splat them in to attr_accessor
.
class SubClass < MyBaseClass ATTRS = [:id, :title, :body] attr_accessor(*ATTRS) end
Now you can access them via the constant:
puts SubClass.ATTRS #=> [:id, :title, :body]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With