Accessors : getter setter « Class « Ruby


# 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

Dog.instance_methods - Object.instance_methods # => ["bark", "bark="]

dog =

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

  def bark=(val)
    @bark = val



Related examples in the same category

1.Add a method named get_color, which returns the color of animal objects created from this class:
2.Call a member method
3.getter and setter
4.Define getter for a attribute
5.Make an attribute readable and writable by using attr_reader, attr_writer
6.Provide the getter
7.Setter with calculation
8.Setter with =