Class: Puppet::Parameter::Path
- Inherits:
-
Puppet::Parameter
- Object
- Puppet::Parameter
- Puppet::Parameter::Path
- Defined in:
- lib/puppet/parameter/path.rb
Overview
This specialized Puppet::Parameter handles validation and munging of paths. By default, a single path is accepted, and by calling Path.accept_arrays it is possible to allow an array of paths.
Constant Summary
Constants included from Util::Docs
Constants included from Util
Util::AbsolutePathPosix, Util::AbsolutePathWindows, Util::DEFAULT_POSIX_MODE, Util::DEFAULT_WINDOWS_MODE
Constants included from Util::POSIX
Util::POSIX::LOCALE_ENV_VARS, Util::POSIX::USER_ENV_VARS
Constants included from Util::SymbolicFileMode
Util::SymbolicFileMode::SetGIDBit, Util::SymbolicFileMode::SetUIDBit, Util::SymbolicFileMode::StickyBit, Util::SymbolicFileMode::SymbolicMode, Util::SymbolicFileMode::SymbolicSpecialToBit
Constants included from Util::Logging
Util::Logging::FILE_AND_LINE, Util::Logging::FILE_NO_LINE, Util::Logging::MM, Util::Logging::NO_FILE_LINE
Instance Attribute Summary
Attributes inherited from Puppet::Parameter
#name, #parent, #resource, #sensitive
Attributes included from Util::Docs
Class Method Summary collapse
-
.accept_arrays(bool = true) ⇒ Object
Specifies whether multiple paths are accepted or not.
- .arrays? ⇒ Boolean
Instance Method Summary collapse
-
#unsafe_munge(paths) ⇒ String+
This is the default implementation of
munge. -
#unsafe_validate(paths) ⇒ void
This is the default implementation of the
validatemethod. -
#validate_path(paths) ⇒ Array<String>
Performs validation of the given paths.
Methods inherited from Puppet::Parameter
aliasvalue, defaultto, desc, doc, #file, #format, format_value_for_display, #initialize, initvars, isnamevar, isnamevar?, #isnamevar?, isrequired, #line, #log, #metaparam?, #munge, munge, newvalues, nodefault, #noop, #path, #pathbuilder, #provider, proxymethods, #remove, #required?, required?, #tags, #to_s, unmunge, #unmunge, validate, #validate, #value, #value=, #version
Methods included from Util::Docs
#desc, #dochook, #doctable, #markdown_definitionlist, #markdown_header, #nodoc?, #pad, scrub
Methods included from Util
absolute_path?, benchmark, chuser, clear_environment, default_env, deterministic_rand, deterministic_rand_int, exit_on_fail, get_env, get_environment, logmethods, merge_environment, path_to_uri, pretty_backtrace, replace_file, safe_posix_fork, set_env, symbolizehash, thinmark, uri_encode, uri_query_encode, uri_to_path, which, withenv, withumask
Methods included from Util::POSIX
#get_posix_field, #gid, #idfield, #methodbyid, #methodbyname, #search_posix_field, #uid
Methods included from Util::SymbolicFileMode
#normalize_symbolic_mode, #symbolic_mode_to_int, #valid_symbolic_mode?
Methods included from Util::MethodHelper
#requiredopts, #set_options, #symbolize_options
Methods included from Util::Logging
#clear_deprecation_warnings, #debug, #deprecation_warning, #format_exception, #get_deprecation_offender, #log_and_raise, #log_deprecations_to_file, #log_exception, #puppet_deprecation_warning, #send_log, setup_facter_logging!, #warn_once
Methods included from Util::Errors
#adderrorcontext, #devfail, #error_context, #exceptwrap, #fail
Constructor Details
This class inherits a constructor from Puppet::Parameter
Class Method Details
.accept_arrays(bool = true) ⇒ Object
Specifies whether multiple paths are accepted or not.
11 12 13 |
# File 'lib/puppet/parameter/path.rb', line 11 def self.accept_arrays(bool = true) @accept_arrays = !!bool end |
.arrays? ⇒ Boolean
14 15 16 |
# File 'lib/puppet/parameter/path.rb', line 14 def self.arrays? @accept_arrays end |
Instance Method Details
#unsafe_munge(paths) ⇒ String+
This is the default implementation of munge. If the concrete parameter defines a munge method, this default implementation will be overridden. This default implementation does not perform any munging, it just checks the one/many paths constraints. A derived implementation can perform this check as: ‘paths.is_a?(Array) and ! self.class.arrays?` and raise a Error.
51 52 53 54 55 56 |
# File 'lib/puppet/parameter/path.rb', line 51 def unsafe_munge(paths) if paths.is_a?(Array) and ! self.class.arrays? then fail _("%{name} only accepts a single path, not an array of paths") % { name: name } end paths end |
#unsafe_validate(paths) ⇒ void
This method returns an undefined value.
This is the default implementation of the validate method. It will be overridden if the validate option is used when defining the parameter.
39 40 41 |
# File 'lib/puppet/parameter/path.rb', line 39 def unsafe_validate(paths) validate_path(paths) end |
#validate_path(paths) ⇒ Array<String>
Performs validation of the given paths. If the concrete parameter defines a validation method, it may call this method to perform path validation.
25 26 27 28 29 30 31 32 33 |
# File 'lib/puppet/parameter/path.rb', line 25 def validate_path(paths) if paths.is_a?(Array) and ! self.class.arrays? then fail _("%{name} only accepts a single path, not an array of paths") % { name: name } end fail(_("%{name} must be a fully qualified path") % { name: name }) unless Array(paths).all? {|path| absolute_path?(path)} paths end |