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.