class RDoc::Constant

A constant

Attributes

is_alias_for[W]

Sets the module or class this is constant is an alias for.

name[RW]

The constant's name

value[RW]

The constant's value

visibility[RW]

The constant's visibility

Public Class Methods

new(name, value, comment) click to toggle source

Creates a new constant with name, value and comment

Calls superclass method RDoc::CodeObject.new
# File lib/rdoc/constant.rb, line 31
def initialize(name, value, comment)
 super()
 @name = name
 @value = value
 @is_alias_for = nil
 @visibility = nil
 self.comment = comment
end

Public Instance Methods

<=>(other) click to toggle source

Constants are ordered by name

# File lib/rdoc/constant.rb, line 46
def <=> other
 return unless self.class === other
 [parent_name, name] <=> [other.parent_name, other.name]
end
==(other) click to toggle source

Constants are equal when their parent and name is the same

# File lib/rdoc/constant.rb, line 55
def == other
 self.class == other.class and
 @parent == other.parent and
 @name == other.name
end
documented?() click to toggle source

A constant is documented if it has a comment, or is an alias for a documented class or module.

Calls superclass method RDoc::CodeObject#documented?
# File lib/rdoc/constant.rb, line 65
def documented?
 return true if super
 return false unless @is_alias_for
 case @is_alias_for
 when String then
 found = @store.find_class_or_module @is_alias_for
 return false unless found
 @is_alias_for = found
 end
 @is_alias_for.documented?
end
full_name() click to toggle source

Full constant name including namespace

# File lib/rdoc/constant.rb, line 80
def full_name
 @full_name ||= "#{parent_name}::#{@name}"
end
is_alias_for() click to toggle source

The module or class this constant is an alias for

# File lib/rdoc/constant.rb, line 87
def is_alias_for
 case @is_alias_for
 when String then
 found = @store.find_class_or_module @is_alias_for
 @is_alias_for = found if found
 @is_alias_for
 else
 @is_alias_for
 end
end
marshal_dump() click to toggle source

Dumps this Constant for use by ri. See also marshal_load

# File lib/rdoc/constant.rb, line 108
def marshal_dump
 alias_name = case found = is_alias_for
 when RDoc::CodeObject then found.full_name
 else found
 end
 [ MARSHAL_VERSION,
 @name,
 full_name,
 @visibility,
 alias_name,
 parse(@comment),
 @file.relative_name,
 parent.name,
 parent.class,
 section.title,
 ]
end
marshal_load(array) click to toggle source

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

# File lib/rdoc/constant.rb, line 134
def marshal_load array
 initialize array[1], nil, array[5]
 @full_name = array[2]
 @visibility = array[3]
 @is_alias_for = array[4]
 # 5 handled above
 # 6 handled below
 @parent_name = array[7]
 @parent_class = array[8]
 @section_title = array[9]
 @file = RDoc::TopLevel.new array[6]
end
path() click to toggle source

Path to this constant for use with HTML generator output.

# File lib/rdoc/constant.rb, line 152
def path
 "#{@parent.path}##{@name}"
end
store=(store) click to toggle source

Sets the store for this class or module and its contained code objects.

Calls superclass method RDoc::CodeObject#store=
# File lib/rdoc/constant.rb, line 170
def store= store
 super
 @file = @store.add_file @file.full_name if @file
end