Accessors : getter setter « Class « Ruby






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

 








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 =