Maintenance of Ruby 2.0.0 will end on February 24, 2016. Read more

In Files

  • rdoc/attr.rb

Class/Module Index [+]



An attribute created by #attr, #attr_reader, #attr_writer or #attr_accessor



Is the attribute readable (‘R’), writable (‘W’) or both (‘RW’)?

Public Class Methods

new(text, name, rw, comment, singleton = false) click to toggle source

Creates a new Attr with body text, name, read/write status rw and comment. singleton marks this as a class attribute.

               # File rdoc/attr.rb, line 24
def initialize(text, name, rw, comment, singleton = false)
  super text, name

  @rw = rw
  @singleton = singleton
  self.comment = comment

Public Instance Methods

==(other) click to toggle source

Attributes are equal when their names, singleton and rw are identical

               # File rdoc/attr.rb, line 35
def == other
  self.class == other.class and == and == and
    self.singleton == other.singleton
add_alias(an_alias, context) click to toggle source

Add an_alias as an attribute in context.

               # File rdoc/attr.rb, line 45
def add_alias(an_alias, context)
  new_attr =, an_alias.new_name,,
                            self.comment, self.singleton)

  new_attr.record_location an_alias.file
  new_attr.visibility = self.visibility
  new_attr.is_alias_for = self
  @aliases << new_attr
  context.add_attribute new_attr
aref_prefix() click to toggle source

The aref prefix for attributes

               # File rdoc/attr.rb, line 60
def aref_prefix
definition() click to toggle source

Returns attr_reader, attr_writer or attr_accessor as appropriate.

               # File rdoc/attr.rb, line 77
def definition
  case @rw
  when 'RW' then 'attr_accessor'
  when 'R'  then 'attr_reader'
  when 'W'  then 'attr_writer'
marshal_dump() click to toggle source

Dumps this Attr for use by ri. See also marshal_load

               # File rdoc/attr.rb, line 101
def marshal_dump
marshal_load(array) click to toggle source

Loads this Attr from array. For a loaded Attr the following methods will return cached values:

               # File rdoc/attr.rb, line 123
def marshal_load array

  @aliases      = []
  @parent       = nil
  @parent_name  = nil
  @parent_class = nil
  @section      = nil
  @file         = nil

  version        = array[0]
  @name          = array[1]
  @full_name     = array[2]
  @rw            = array[3]
  @visibility    = array[4]
  @comment       = array[5]
  @singleton     = array[6] || false # MARSHAL_VERSION == 0
  #                      7 handled below
  @parent_name   = array[8]
  @parent_class  = array[9]
  @section_title = array[10]

  @file = array[7] if version > 1

  @parent_name ||= @full_name.split('#', 2).first

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit

blog comments powered by Disqus