Class: Puppet::Util::Reference Private
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Manage Reference Documentation.
Constant Summary
Constants included from Puppet::Util
ALNUM, ALPHA, AbsolutePathPosix, AbsolutePathWindows, DEFAULT_POSIX_MODE, DEFAULT_WINDOWS_MODE, ESCAPED, HEX, HttpProxy, PUPPET_STACK_INSERTION_FRAME, RESERVED, RFC_3986_URI_REGEX, UNRESERVED, UNSAFE
Constants included from POSIX
POSIX::LOCALE_ENV_VARS, POSIX::USER_ENV_VARS
Constants included from SymbolicFileMode
SymbolicFileMode::SetGIDBit, SymbolicFileMode::SetUIDBit, SymbolicFileMode::StickyBit, SymbolicFileMode::SymbolicMode, SymbolicFileMode::SymbolicSpecialToBit
Constants included from Docs
Instance Attribute Summary collapse
- #depth ⇒ Object private
- #doc ⇒ Object private
- #dynamic ⇒ Object private
- #header ⇒ Object private
- #page ⇒ Object private
- #title ⇒ Object private
Attributes included from Docs
Class Method Summary collapse
- .modes ⇒ Object private
- .newreference(name, options = {}, &block) ⇒ Object private
- .page(*sections) ⇒ Object private
- .pdf(text) ⇒ Object private
- .references(environment) ⇒ Object private
Instance Method Summary collapse
- #dynamic? ⇒ Boolean private
-
#indent(text, tab) ⇒ Object
private
Indent every line in the chunk except those which begin with ‘..’.
-
#initialize(name, title: nil, depth: nil, dynamic: nil, doc: nil, &block) ⇒ Reference
constructor
private
A new instance of Reference.
- #option(name, value) ⇒ Object private
- #text ⇒ Object private
- #to_markdown(withcontents = true) ⇒ Object private
Methods included from InstanceLoader
instance_hash, instance_load, instance_loader, instance_loading?, loaded_instance, loaded_instances
Methods included from Puppet::Util
absolute_path?, benchmark, chuser, clear_environment, create_erb, default_env, deterministic_rand, deterministic_rand_int, exit_on_fail, format_backtrace_array, format_puppetstack_frame, get_env, get_environment, logmethods, merge_environment, path_to_uri, pretty_backtrace, replace_file, resolve_stackframe, rfc2396_escape, safe_posix_fork, set_env, skip_external_facts, symbolizehash, thinmark, uri_encode, uri_query_encode, uri_to_path, uri_unescape, which, withenv, withumask
Methods included from POSIX
#get_posix_field, #gid, groups_of, #idfield, #methodbyid, #methodbyname, #search_posix_field, #uid
Methods included from SymbolicFileMode
#display_mode, #normalize_symbolic_mode, #symbolic_mode_to_int, #valid_symbolic_mode?
Methods included from Docs
#desc, #dochook, #doctable, #markdown_definitionlist, #markdown_header, #nodoc?, #pad, scrub
Constructor Details
#initialize(name, title: nil, depth: nil, dynamic: nil, doc: nil, &block) ⇒ Reference
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Reference.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/puppet/util/reference.rb', line 80 def initialize(name, title: nil, depth: nil, dynamic: nil, doc: nil, &block) @name = name @title = title @depth = depth @dynamic = dynamic @doc = doc (:generate, &block) # Now handle the defaults @title ||= _("%{name} Reference") % { name: @name.to_s.capitalize } @page ||= @title.gsub(/\s+/, '') @depth ||= 2 @header ||= "" end |
Instance Attribute Details
#depth ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
65 66 67 |
# File 'lib/puppet/util/reference.rb', line 65 def depth @depth end |
#doc ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
68 69 70 71 72 73 74 |
# File 'lib/puppet/util/reference.rb', line 68 def doc if defined?(@doc) return "#{@name} - #{@doc}" else return @title end end |
#dynamic ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
65 66 67 |
# File 'lib/puppet/util/reference.rb', line 65 def dynamic @dynamic end |
#header ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
65 66 67 |
# File 'lib/puppet/util/reference.rb', line 65 def header @header end |
#page ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
65 66 67 |
# File 'lib/puppet/util/reference.rb', line 65 def page @page end |
#title ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
65 66 67 |
# File 'lib/puppet/util/reference.rb', line 65 def title @title end |
Class Method Details
.modes ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
14 15 16 |
# File 'lib/puppet/util/reference.rb', line 14 def self.modes %w{pdf text} end |
.newreference(name, options = {}, &block) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
18 19 20 21 22 23 |
# File 'lib/puppet/util/reference.rb', line 18 def self.newreference(name, = {}, &block) ref = self.new(name, **, &block) instance_hash(:reference)[name.intern] = ref ref end |
.page(*sections) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
25 26 27 28 29 30 31 32 |
# File 'lib/puppet/util/reference.rb', line 25 def self.page(*sections) depth = 4 # Use the minimum depth sections.each do |name| section = reference(name) or raise _("Could not find section %{name}") % { name: name } depth = section.depth if section.depth < depth end end |
.pdf(text) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/puppet/util/reference.rb', line 34 def self.pdf(text) puts _("creating pdf") rst2latex = which('rst2latex') || which('rst2latex.py') || raise(_("Could not find rst2latex")) cmd = %{#{rst2latex} /tmp/puppetdoc.txt > /tmp/puppetdoc.tex} Puppet::Util.replace_file("/tmp/puppetdoc.txt") {|f| f.puts text } # There used to be an attempt to use secure_open / replace_file to secure # the target, too, but that did nothing: the race was still here. We can # get exactly the same benefit from running this effort: Puppet::FileSystem.unlink('/tmp/puppetdoc.tex') rescue nil output = %x{#{cmd}} unless $CHILD_STATUS == 0 $stderr.puts _("rst2latex failed") $stderr.puts output exit(1) end $stderr.puts output # Now convert to pdf Dir.chdir("/tmp") do %x{texi2pdf puppetdoc.tex >/dev/null 2>/dev/null} end end |
.references(environment) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
60 61 62 63 |
# File 'lib/puppet/util/reference.rb', line 60 def self.references(environment) instance_loader(:reference).loadall(environment) loaded_instances(:reference).sort_by(&:to_s) end |
Instance Method Details
#dynamic? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
76 77 78 |
# File 'lib/puppet/util/reference.rb', line 76 def dynamic? self.dynamic end |
#indent(text, tab) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Indent every line in the chunk except those which begin with ‘..’.
97 98 99 |
# File 'lib/puppet/util/reference.rb', line 97 def indent(text, tab) text.gsub(/(^|\A)/, tab).gsub(/^ +\.\./, "..") end |
#option(name, value) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
101 102 103 |
# File 'lib/puppet/util/reference.rb', line 101 def option(name, value) ":#{name.to_s.capitalize}: #{value}\n" end |
#text ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
105 106 107 |
# File 'lib/puppet/util/reference.rb', line 105 def text puts output end |
#to_markdown(withcontents = true) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/puppet/util/reference.rb', line 109 def to_markdown(withcontents = true) # First the header text = markdown_header(@title, 1) text << _("\n\n**This page is autogenerated; any changes will get overwritten**\n\n") text << @header text << generate text end |