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 |