43 lines
1.2 KiB
Ruby
43 lines
1.2 KiB
Ruby
|
lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '../../../lib'))
|
||
|
$LOAD_PATH.unshift(lib_dir)
|
||
|
$LOAD_PATH.uniq!
|
||
|
require 'yard-google-code'
|
||
|
|
||
|
include T('default/module')
|
||
|
|
||
|
def init
|
||
|
super
|
||
|
sections.place(:subclasses).before(:children)
|
||
|
sections.place(:constructor_details, [T('method_details')]).before(:methodmissing)
|
||
|
# Weird bug w/ doubled sections
|
||
|
sections.uniq!
|
||
|
end
|
||
|
|
||
|
def constructor_details
|
||
|
ctors = object.meths(:inherited => true, :included => true)
|
||
|
return unless @ctor = ctors.find {|o| o.name == :initialize }
|
||
|
return if prune_method_listing([@ctor]).empty?
|
||
|
erb(:constructor_details)
|
||
|
end
|
||
|
|
||
|
def subclasses
|
||
|
return if object.path == "Object" # don't show subclasses for Object
|
||
|
unless globals.subclasses
|
||
|
globals.subclasses = {}
|
||
|
list = run_verifier Registry.all(:class)
|
||
|
list.each do |o|
|
||
|
(globals.subclasses[o.superclass.path] ||= []) << o if o.superclass
|
||
|
end
|
||
|
end
|
||
|
|
||
|
@subclasses = globals.subclasses[object.path]
|
||
|
return if @subclasses.nil? || @subclasses.empty?
|
||
|
@subclasses = @subclasses.sort_by {|o| o.path }.map do |child|
|
||
|
name = child.path
|
||
|
if object.namespace
|
||
|
name = object.relative_path(child)
|
||
|
end
|
||
|
[name, child]
|
||
|
end
|
||
|
erb(:subclasses)
|
||
|
end
|