Class: RDoc::Constant
- Inherits:
 - 
      CodeObject
      
        
- Object
 - CodeObject
 - RDoc::Constant
 
 
- Defined in:
 - lib/rdoc/constant.rb
 
Overview
A constant
Constant Summary collapse
- MARSHAL_VERSION =
          
:nodoc:
 0
Constants included from Text
Text::MARKUP_FORMAT, Text::TO_HTML_CHARACTERS
Instance Attribute Summary collapse
- 
  
    
      #is_alias_for  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The module or class this constant is an alias for.
 - 
  
    
      #name  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The constant’s name.
 - 
  
    
      #value  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The constant’s value.
 - 
  
    
      #visibility  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The constant’s visibility.
 
Attributes inherited from CodeObject
#comment, #document_children, #document_self, #done_documenting, #file, #force_documentation, #line, #metadata, #offset, #parent, #received_nodoc, #section, #store, #viewer
Instance Method Summary collapse
- 
  
    
      #<=>(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Constants are ordered by name.
 - 
  
    
      #==(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Constants are equal when their #parent and #name is the same.
 - 
  
    
      #documented?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
A constant is documented if it has a comment, or is an alias for a documented class or module.
 - 
  
    
      #full_name  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Full constant name including namespace.
 - 
  
    
      #initialize(name, value, comment)  ⇒ Constant 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Creates a new constant with
name,valueandcomment. - 
  
    
      #inspect  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 - 
  
    
      #marshal_dump  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Dumps this Constant for use by ri.
 - 
  
    
      #marshal_load(array)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Loads this Constant from
array. - 
  
    
      #path  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Path to this constant for use with HTML generator output.
 - 
  
    
      #pretty_print(q)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 - 
  
    
      #store=(store)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Sets the store for this class or module and its contained code objects.
 - 
  
    
      #to_s  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 
Methods inherited from CodeObject
#display?, #each_parent, #file_name, #full_name=, #ignore, #ignored?, #initialize_visibility, #options, #parent_file_name, #parent_name, #record_location, #start_doc, #stop_doc, #suppress, #suppressed?
Methods included from Generator::Markup
#aref_to, #as_href, #cvs_url, #description, #formatter
Methods included from Text
encode_fallback, #expand_tabs, #flush_left, #markup, #normalize_comment, #parse, #snippet, #strip_hashes, #strip_newlines, #strip_stars, #to_html, #wrap
Constructor Details
#initialize(name, value, comment) ⇒ Constant
Creates a new constant with name, value and comment
      32 33 34 35 36 37 38 39 40 41 42  | 
    
      # File 'lib/rdoc/constant.rb', line 32 def initialize(name, value, comment) super() @name = name @value = value @is_alias_for = nil @visibility = nil self.comment = comment end  | 
  
Instance Attribute Details
#is_alias_for ⇒ Object
The module or class this constant is an alias for
      88 89 90 91 92 93 94 95 96 97  | 
    
      # File 'lib/rdoc/constant.rb', line 88 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  | 
  
#name ⇒ Object
The constant’s name
      17 18 19  | 
    
      # File 'lib/rdoc/constant.rb', line 17 def name @name end  | 
  
#value ⇒ Object
The constant’s value
      22 23 24  | 
    
      # File 'lib/rdoc/constant.rb', line 22 def value @value end  | 
  
#visibility ⇒ Object
The constant’s visibility
      27 28 29  | 
    
      # File 'lib/rdoc/constant.rb', line 27 def visibility @visibility end  | 
  
Instance Method Details
#<=>(other) ⇒ Object
Constants are ordered by name
      47 48 49 50 51  | 
    
      # File 'lib/rdoc/constant.rb', line 47 def <=> other return unless self.class === other [parent_name, name] <=> [other.parent_name, other.name] end  | 
  
#==(other) ⇒ Object
Constants are equal when their #parent and #name is the same
      56 57 58 59 60  | 
    
      # File 'lib/rdoc/constant.rb', line 56 def == other self.class == other.class and @parent == other.parent and @name == other.name end  | 
  
#documented? ⇒ Boolean
A constant is documented if it has a comment, or is an alias for a documented class or module.
      66 67 68 69 70 71 72 73 74 75 76  | 
    
      # File 'lib/rdoc/constant.rb', line 66 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 ⇒ Object
Full constant name including namespace
      81 82 83  | 
    
      # File 'lib/rdoc/constant.rb', line 81 def full_name @full_name ||= "#{parent_name}::#{@name}" end  | 
  
#inspect ⇒ Object
:nodoc:
      99 100 101 102 103 104  | 
    
      # File 'lib/rdoc/constant.rb', line 99 def inspect # :nodoc: "#<%s:0x%x %s::%s>" % [ self.class, object_id, parent_name, @name, ] end  | 
  
#marshal_dump ⇒ Object
Dumps this Constant for use by ri. See also #marshal_load
      109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126  | 
    
      # File 'lib/rdoc/constant.rb', line 109 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) ⇒ Object
Loads this Constant from array.  For a loaded Constant the following methods will return cached values:
- 
#full_name
 - 
#parent_name
 
      135 136 137 138 139 140 141 142 143 144 145 146 147 148  | 
    
      # File 'lib/rdoc/constant.rb', line 135 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 ⇒ Object
Path to this constant for use with HTML generator output.
      153 154 155  | 
    
      # File 'lib/rdoc/constant.rb', line 153 def path "#{@parent.path}##{@name}" end  | 
  
#pretty_print(q) ⇒ Object
:nodoc:
      157 158 159 160 161 162 163 164 165 166  | 
    
      # File 'lib/rdoc/constant.rb', line 157 def pretty_print q # :nodoc: q.group 2, "[#{self.class.name} #{full_name}", "]" do unless comment.empty? then q.breakable q.text "comment:" q.breakable q.pp @comment end end end  | 
  
#store=(store) ⇒ Object
Sets the store for this class or module and its contained code objects.
      171 172 173 174 175  | 
    
      # File 'lib/rdoc/constant.rb', line 171 def store= store super @file = @store.add_file @file.full_name if @file end  | 
  
#to_s ⇒ Object
:nodoc:
      177 178 179 180 181 182 183 184  | 
    
      # File 'lib/rdoc/constant.rb', line 177 def to_s # :nodoc: parent_name = parent ? parent.full_name : '(unknown)' if is_alias_for "constant #{parent_name}::#@name -> #{is_alias_for}" else "constant #{parent_name}::#@name" end end  |