An attribute created by #attr, #attr_reader, #attr_writer or #attr_accessor
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 20
def initialize(text, name, rw, comment, singleton = false)
super text, name
@rw = rw
@singleton = singleton
self.comment = comment
end
Attributes are equal when their names, singleton and rw are identical
# File rdoc/attr.rb, line 31
def == other
self.class == other.class and
self.name == other.name and
self.rw == other.rw and
self.singleton == other.singleton
end
Add an_alias as an attribute in context.
# File rdoc/attr.rb, line 41
def add_alias(an_alias, context)
new_attr = self.class.new(self.text, an_alias.new_name, self.rw,
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
new_attr
end
The aref prefix for attributes
# File rdoc/attr.rb, line 56
def aref_prefix
'attribute'
end
Returns attr_reader, attr_writer or attr_accessor as appropriate.
# File rdoc/attr.rb, line 63
def definition
case @rw
when 'RW' then 'attr_accessor'
when 'R' then 'attr_reader'
when 'W' then 'attr_writer'
end
end
Dumps this Attr for use by ri. See also marshal_load
# File rdoc/attr.rb, line 87
def marshal_dump
[ MARSHAL_VERSION,
@name,
full_name,
@rw,
@visibility,
parse(@comment),
singleton,
@file.absolute_name,
]
end
Loads this Attr from array. For a
loaded Attr the following methods will return
cached values:
# File rdoc/attr.rb, line 106
def marshal_load array
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
@file = RDoc::TopLevel.new array[7] if version > 1
@parent_name = @full_name
end
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 see Improve the docs, or visit Documenting-ruby.org.