Add a server action to the yardoc face
This commit adds the `puppet yardoc server` action which is designed to mimic `yard server --gems`. This action generates YARD indicies by invoking `puppet yardoc modules` and then configures `YARD::CLI::Server` to serve the resulting documentation.
This commit is contained in:
		
							parent
							
								
									e2a9e40f01
								
							
						
					
					
						commit
						afb053c03b
					
				|  | @ -85,4 +85,28 @@ Puppet::Face.define(:yardoc, '0.0.1') do | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|  |   action(:server) do | ||||||
|  |     summary "Serve YARD documentation for modules." | ||||||
|  | 
 | ||||||
|  |     when_invoked do |*args| | ||||||
|  |       check_required_features | ||||||
|  |       require 'puppetx/yardoc/yard/plugin' | ||||||
|  |       opts = args.pop | ||||||
|  | 
 | ||||||
|  |       # FIXME: This is pretty inefficient as it forcibly re-generates the YARD | ||||||
|  |       # indicies each time the server is started. However, it ensures things are | ||||||
|  |       # generated properly. | ||||||
|  |       module_list = Puppet::Face[:yardoc, :current].modules | ||||||
|  | 
 | ||||||
|  |       module_tuples = module_list.map do |mod| | ||||||
|  |         name = (mod.forge_name || mod.name).gsub('/', '-') | ||||||
|  |         yard_index = File.join(mod.path, '.yardoc') | ||||||
|  | 
 | ||||||
|  |         [name, yard_index] | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       YARD::CLI::Server.run('-m', *module_tuples.flatten) | ||||||
|  |     end | ||||||
|  |   end | ||||||
| end | end | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Charlie Sharpsteen
						Charlie Sharpsteen