class Object
Public Instance Methods
Renders the alias_of section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/setup.rb, line 9 def alias_of # Properties are the same thing as parameters (from the documentation standpoint), # so reuse the same template but with a different title and data source. #@parameters = object.properties || [] #@parameters.sort_by! { |p| p.name } @tag_title = 'Alias of' @alias_of = object.alias_of erb(:alias_of) end
Renders the box_info section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/puppet_class/html/setup.rb, line 9 def box_info @subclasses = Registry.all(:puppet_class).find_all { |c| c.statement.parent_class == object.name.to_s } erb(:box_info) end
Builds the options to PuppetStrings.generate. @param [Hash] options The Puppet face options hash. @param [Array] yard_args The additional arguments to pass to YARD. @return [Hash] Returns the PuppetStrings.generate options hash.
# File lib/puppet/face/strings.rb, line 148 def build_generate_options(options = nil, *yard_args) generate_options = {} generate_options[:debug] = Puppet[:debug] generate_options[:backtrace] = Puppet[:trace] generate_options[:yard_args] = yard_args unless yard_args.empty? if options markup = options[:markup] generate_options[:markup] = markup if markup generate_options[:path] = options[:out] if options[:out] generate_options[:stdout] = options[:stdout] if options[:describe] generate_options[:describe] = true generate_options[:describe_types] = options[:describe_types] generate_options[:describe_list] = options[:list] end format = options[:format] if format if format.casecmp('markdown').zero? generate_options[:markdown] = true elsif format.casecmp('json').zero? generate_options[:json] = true else raise "Invalid format #{options[:format]}. Please select 'json' or 'markdown'." end end end generate_options end
Checks that the required features are installed. @return [void]
# File lib/puppet/face/strings.rb, line 138 def check_required_features raise "The 'yard' gem must be installed in order to use this face." unless Puppet.features.yard? raise "The 'rgen' gem must be installed in order to use this face." unless Puppet.features.rgen? raise 'This face requires Ruby 1.9 or greater.' if RUBY_VERSION.match?(%r{^1\.8}) end
Renders the classes section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 161 def classes @title = 'Puppet Class Listing A-Z' @objects_by_letter = objects_by_letter(:puppet_class) erb(:objects) end
Renders the commands section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/puppet_provider/html/setup.rb, line 25 def commands @title = 'Commands' @collection = object.commands erb(:collection) end
Renders the confines section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/puppet_provider/html/setup.rb, line 9 def confines @title = 'Confines' @collection = object.confines erb(:collection) end
Renders the data types section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 169 def data_types @title = 'Data Type Listing A-Z' @objects_by_letter = objects_by_letter(:puppet_data_type, :puppet_data_type_alias) erb(:objects) end
Renders the defaults section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/puppet_provider/html/setup.rb, line 17 def defaults @title = 'Default Provider For' @collection = object.defaults erb(:collection) end
Renders the defined types section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 177 def defined_types @title = 'Defined Type Listing A-Z' @objects_by_letter = objects_by_letter(:puppet_defined_type) erb(:objects) end
# File lib/puppet-strings/yard/templates/default/puppet_task/html/setup.rb, line 11 def description json['description'] end
Renders the enum section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/tags/setup.rb, line 22 def enum erb(:enum) end
Renders the functions section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 201 def functions @title = 'Puppet Function Listing A-Z' @objects_by_letter = objects_by_letter(:puppet_function) erb(:objects) end
Generate a searchable Ruby class list in the output. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 68 def generate_class_list @items = options.objects if options.objects @list_title = 'Ruby Class List' @list_type = 'class' generate_list_contents end
Generates the searchable Ruby method list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 57 def generate_method_list @items = prune_method_listing(Registry.all(:method), false) @items = @items.reject {|m| m.name.to_s =~ /=$/ && m.is_attribute? } @items = @items.sort_by {|m| m.name.to_s } @list_title = 'Ruby Method List' @list_type = 'method' generate_list_contents end
Generates the searchable Puppet class list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 3 def generate_puppet_class_list @items = Registry.all(:puppet_class).sort_by { |c| c.name.to_s } @list_title = 'Puppet Class List' @list_type = 'puppet_class' generate_list_contents end
Generates the searchable Puppet data type list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 12 def generate_puppet_data_type_list @items = Registry.all(:puppet_data_type, :puppet_data_type_alias).sort_by {|dt| dt.name.to_s } @list_title = 'Data Type List' @list_type = 'puppet_data_type' generate_list_contents end
Generates the searchable Puppet defined type list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 21 def generate_puppet_defined_type_list @items = Registry.all(:puppet_defined_type).sort_by {|dt| dt.name.to_s } @list_title = 'Defined Type List' @list_type = 'puppet_defined_type' generate_list_contents end
Generates the searchable Puppet function list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 48 def generate_puppet_function_list @items = Registry.all(:puppet_function).sort_by {|f| f.name.to_s } @list_title = 'Puppet Function List' @list_type = 'puppet_function' generate_list_contents end
Generates the searchable Puppet Plan list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 86 def generate_puppet_plan_list @items = Registry.all(:puppet_plan).sort_by {|t| t.name.to_s } @list_title = 'Puppet Plan List' @list_type = 'puppet_plan' generate_list_contents end
Generates the searchable Puppet provider list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 39 def generate_puppet_provider_list @items = Registry.all(:puppet_provider).sort_by {|p| p.name.to_s } @list_title = 'Provider List' @list_type = 'puppet_provider' generate_list_contents end
Generates the searchable Puppet Task list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 77 def generate_puppet_task_list @items = Registry.all(:puppet_task).sort_by {|t| t.name.to_s } @list_title = 'Puppet Task List' @list_type = 'puppet_task' generate_list_contents end
Generates the searchable Puppet resource type list. @return [void]
# File lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb, line 30 def generate_puppet_type_list @items = Registry.all(:puppet_type).sort_by {|t| t.name.to_s } @list_title = 'Resource Type List' @list_type = 'puppet_type' generate_list_contents end
Initializes the template. @return [void]
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 3 def init case object when '_index.html' @page_title = options.title sections :layout, [:index, [:listing, [:classes, :data_types, :defined_types, :types, :providers, :functions, :tasks, :plans, :files, :objects]]] else super end end
# File lib/puppet-strings/yard/templates/default/puppet_task/html/setup.rb, line 7 def json object.statement.json end
Renders the layout section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 15 def layout @nav_url = url_for_list(!@file || options.index ? menu_lists.first[:type] : 'file') case object when nil, String @path = nil when @file @path = @file.path when !object.is_a?(YARD::CodeObjects::NamespaceObject) @path = object.parent.path @nav_url = url_for_list('class') when YARD::CodeObjects::ClassObject @path = object.path @nav_url = url_for_list('class') when PuppetStrings::Yard::CodeObjects::Class @nav_url = url_for_list('puppet_class') @page_title = "Puppet Class: #{object.name}" @path = object.path when PuppetStrings::Yard::CodeObjects::DataType, PuppetStrings::Yard::CodeObjects::DataTypeAlias @nav_url = url_for_list('puppet_data_type') @page_title = "Data Type: #{object.name}" @path = object.path when PuppetStrings::Yard::CodeObjects::DefinedType @nav_url = url_for_list('puppet_defined_type') @page_title = "Defined Type: #{object.name}" @path = object.path when PuppetStrings::Yard::CodeObjects::Type @nav_url = url_for_list('puppet_type') @page_title = "Resource Type: #{object.name}" @path = object.path when PuppetStrings::Yard::CodeObjects::Provider @nav_url = url_for_list('puppet_provider') @page_title = "Provider: #{object.name}" @path = object.path when PuppetStrings::Yard::CodeObjects::Function @nav_url = url_for_list('puppet_function') @page_title = "Puppet Function: #{object.name} (#{object.function_type})" @path = object.path when PuppetStrings::Yard::CodeObjects::Task @nav_url = url_for_list('puppet_task') @page_title = "Puppet Task: #{object.name}" @path = object.path when PuppetStrings::Yard::CodeObjects::Plan @nav_url = url_for_list('puppet_plan') @page_title = "Puppet Plan: #{object.name}" @path = object.path else @path = object.path end final_layout = erb(:layout) if @file && @file.name == 'README' PuppetStrings::Yard::Util.github_to_yard_links(final_layout) end final_layout end
# File lib/puppet-strings/yard/templates/default/puppet_data_type/html/setup.rb, line 7 def method_listing sort_listing(object.functions) end
Renders the objects section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 225 def objects @title = 'Ruby Namespace Listing A-Z' @objects_by_letter = objects_by_letter(:class, :module) erb(:objects) end
Builds a list of objects by letter. @param [Array] types The types of objects to find. @return [Hash] Returns a hash of first letter of the object name to list of objects.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 151 def objects_by_letter(*types) hash = {} objects = Registry.all(*types).sort_by {|o| o.name.to_s } objects = run_verifier(objects) objects.each {|o| (hash[o.name.to_s[0,1].upcase] ||= []) << o } hash end
Renders the overload section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/tags/setup.rb, line 16 def overload erb(if object.type == :puppet_function then :puppet_overload else :overload end) end
Called to return parameter tags. @return [Array<YARD::Tag>] Returns the parameter tags if the object should have parameters.
# File lib/puppet-strings/yard/templates/default/tags/setup.rb, line 3 def param tag(:param) if object.type == :method || object.type == :puppet_class || object.type == :puppet_data_type || object.type == :puppet_defined_type || object.type == :puppet_function || object.type == :puppet_task || object.type == :puppet_plan end
Renders the parameters section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/puppet_task/html/setup.rb, line 17 def parameters @parameters = json['parameters'] || [] @parameters.to_a.sort! @tag_title = 'Parameters' erb(:parameters) end
rubocop:disable Style/PreferredHashMethods Because of Ruby, true and false from the args are both strings and both true. Here, when the arg is set to false (or empty), set it to real false, else real true. Then, if the arg is set simply to 'true', assume default behavior is expected and set the path to nil to elicit that, else set to the path given. @param [Hash] args from the Rake task cli @param [Hash] options to send to the generate function @param [Symbol] possible format option @return nil
# File lib/puppet-strings/tasks/generate.rb, line 30 def parse_format_option(args, options, format) return unless args.has_key? format options[format] = args[format] == 'false' || args[format].empty? ? false : true return unless options[format] options[:path] = args[format] == 'true' ? nil : args[format] end
Renders the plans section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 217 def plans @title = 'Puppet Plan Listing A-Z' @objects_by_letter = objects_by_letter(:puppet_plan) erb(:objects) end
Renders the properties section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/puppet_type/html/setup.rb, line 16 def properties # Properties are the same thing as parameters (from the documentation standpoint), # so reuse the same template but with a different title and data source. # # "checks" such as "creates" and "onlyif" are another type of property @parameters = (object.properties || []) + (object.checks || []) @parameters.sort_by! { |p| p.name } @tag_title = 'Properties' erb(:parameters) end
Renders the providers section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 193 def providers @title = 'Puppet Provider Listing A-Z' @objects_by_letter = objects_by_letter(:puppet_provider) erb(:objects) end
# File lib/puppet-strings/yard/templates/default/puppet_data_type/html/setup.rb, line 11 def sort_listing(list) list.sort_by {|o| [o.scope.to_s, o.name.to_s.downcase] } end
Renders the tasks section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 209 def tasks @title = 'Puppet Task Listing A-Z' @objects_by_letter = objects_by_letter(:puppet_task) erb(:objects) end
Renders the types section. @return [String] Returns the rendered section.
# File lib/puppet-strings/yard/templates/default/layout/html/setup.rb, line 185 def types @title = 'Resource Type Listing A-Z' @objects_by_letter = objects_by_letter(:puppet_type) erb(:objects) end