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 |