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, Util::Logging::SUPPRESS_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 ‘validate` method.
-
#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 |