Mega Code Archive

 
Categories / Ruby / Class
 

Accessors

# Ruby simplifies the creation of getters and setters with a little metaprogramming and the methods attr, attr_reader, attr_writer, and attr_accessor, all from the Module class.  # By supplying the attr method, Ruby provides a way to quickly create the equivalent of six lines of code with a single line. # The method attr creates a single getter method, named by a symbol, with an optional setter method (if the second argument is true) #!/usr/bin/env ruby class Dog   attr :bark, true end Dog.instance_methods - Object.instance_methods # => ["bark", "bark="] dog = Dog.new dog.bark="Woof!" puts dog.bark # => Woof! # single line attr :bark, true is equivalent to writing out the bark and bark= methods in six lines of code: class Dog   def bark     @bark   end   def bark=(val)     @bark = val   end end