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.
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/puppet/util/reference.rb', line 79 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.
64 65 66 |
# File 'lib/puppet/util/reference.rb', line 64 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.
67 68 69 70 71 72 73 |
# File 'lib/puppet/util/reference.rb', line 67 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.
64 65 66 |
# File 'lib/puppet/util/reference.rb', line 64 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.
64 65 66 |
# File 'lib/puppet/util/reference.rb', line 64 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.
64 65 66 |
# File 'lib/puppet/util/reference.rb', line 64 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.
64 65 66 |
# File 'lib/puppet/util/reference.rb', line 64 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.
13 14 15 |
# File 'lib/puppet/util/reference.rb', line 13 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.
17 18 19 20 21 22 |
# File 'lib/puppet/util/reference.rb', line 17 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.
24 25 26 27 28 29 30 31 |
# File 'lib/puppet/util/reference.rb', line 24 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.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/puppet/util/reference.rb', line 33 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.
59 60 61 62 |
# File 'lib/puppet/util/reference.rb', line 59 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.
75 76 77 |
# File 'lib/puppet/util/reference.rb', line 75 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 '..'.
96 97 98 |
# File 'lib/puppet/util/reference.rb', line 96 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.
100 101 102 |
# File 'lib/puppet/util/reference.rb', line 100 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.
104 105 106 |
# File 'lib/puppet/util/reference.rb', line 104 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.
108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/puppet/util/reference.rb', line 108 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 |