mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Clean up namespacing of RI's classes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
929faf7906
commit
3e39ade457
20 changed files with 1362 additions and 1402 deletions
147
lib/rdoc/ri/descriptions.rb
Normal file
147
lib/rdoc/ri/descriptions.rb
Normal file
|
@ -0,0 +1,147 @@
|
|||
require 'yaml'
|
||||
require 'rdoc/markup/simple_markup/fragments'
|
||||
require 'rdoc/ri'
|
||||
|
||||
#--
|
||||
# Descriptions are created by RDoc (in ri_generator) and written out in
|
||||
# serialized form into the documentation tree. ri then reads these to generate
|
||||
# the documentation
|
||||
#++
|
||||
|
||||
class RDoc::RI::RDoc::RI::NamedThing
|
||||
attr_reader :name
|
||||
def initialize(name)
|
||||
@name = name
|
||||
end
|
||||
def <=>(other)
|
||||
@name <=> other.name
|
||||
end
|
||||
|
||||
def hash
|
||||
@name.hash
|
||||
end
|
||||
|
||||
def eql?(other)
|
||||
@name.eql?(other)
|
||||
end
|
||||
end
|
||||
|
||||
class RDoc::RI::AliasName < RDoc::RI::RDoc::RI::NamedThing; end
|
||||
|
||||
class RDoc::RI::Attribute < RDoc::RI::RDoc::RI::NamedThing
|
||||
attr_reader :rw, :comment
|
||||
def initialize(name, rw, comment)
|
||||
super(name)
|
||||
@rw = rw
|
||||
@comment = comment
|
||||
end
|
||||
end
|
||||
|
||||
class RDoc::RI::Constant < RDoc::RI::NamedThing
|
||||
attr_reader :value, :comment
|
||||
def initialize(name, value, comment)
|
||||
super(name)
|
||||
@value = value
|
||||
@comment = comment
|
||||
end
|
||||
end
|
||||
|
||||
class RDoc::RI::IncludedModule < RDoc::RI::NamedThing; end
|
||||
|
||||
class RDoc::RI::MethodSummary < RDoc::RI::NamedThing
|
||||
def initialize(name="")
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
class RDoc::RI::Description
|
||||
attr_accessor :name
|
||||
attr_accessor :full_name
|
||||
attr_accessor :comment
|
||||
|
||||
def serialize
|
||||
self.to_yaml
|
||||
end
|
||||
|
||||
def self.deserialize(from)
|
||||
YAML.load(from)
|
||||
end
|
||||
|
||||
def <=>(other)
|
||||
@name <=> other.name
|
||||
end
|
||||
end
|
||||
|
||||
class RDoc::RI::ModuleDescription < RDoc::RI::Description
|
||||
|
||||
attr_accessor :class_methods
|
||||
attr_accessor :instance_methods
|
||||
attr_accessor :attributes
|
||||
attr_accessor :constants
|
||||
attr_accessor :includes
|
||||
|
||||
# merge in another class desscription into this one
|
||||
def merge_in(old)
|
||||
merge(@class_methods, old.class_methods)
|
||||
merge(@instance_methods, old.instance_methods)
|
||||
merge(@attributes, old.attributes)
|
||||
merge(@constants, old.constants)
|
||||
merge(@includes, old.includes)
|
||||
if @comment.nil? || @comment.empty?
|
||||
@comment = old.comment
|
||||
else
|
||||
unless old.comment.nil? or old.comment.empty? then
|
||||
@comment << SM::Flow::RULE.new
|
||||
@comment.concat old.comment
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def display_name
|
||||
"Module"
|
||||
end
|
||||
|
||||
# the 'ClassDescription' subclass overrides this
|
||||
# to format up the name of a parent
|
||||
def superclass_string
|
||||
nil
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def merge(into, from)
|
||||
names = {}
|
||||
into.each {|i| names[i.name] = i }
|
||||
from.each {|i| names[i.name] = i }
|
||||
into.replace(names.keys.sort.map {|n| names[n]})
|
||||
end
|
||||
end
|
||||
|
||||
class RDoc::RI::ClassDescription < RDoc::RI::ModuleDescription
|
||||
attr_accessor :superclass
|
||||
|
||||
def display_name
|
||||
"Class"
|
||||
end
|
||||
|
||||
def superclass_string
|
||||
if @superclass && @superclass != "Object"
|
||||
@superclass
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class RDoc::RI::MethodDescription < RDoc::RI::Description
|
||||
|
||||
attr_accessor :is_class_method
|
||||
attr_accessor :visibility
|
||||
attr_accessor :block_params
|
||||
attr_accessor :is_singleton
|
||||
attr_accessor :aliases
|
||||
attr_accessor :is_alias_for
|
||||
attr_accessor :params
|
||||
|
||||
end
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue