Class: PDK::CLI::Util::OptionValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/pdk/cli/util/option_validator.rb

Class Method Summary collapse

Class Method Details

.comma_separated_list?(list, _options = {}) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/pdk/cli/util/option_validator.rb', line 5

def self.comma_separated_list?(list, _options = {})
  (list =~ %r{^[\w\-]+(?:,[\w\-]+)+$}) ? true : false
end

.enum(val, valid_entries, _options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/pdk/cli/util/option_validator.rb', line 9

def self.enum(val, valid_entries, _options = {})
  vals = val.is_a?(Array) ? val : [val]
  invalid_entries = vals.reject { |e| valid_entries.include?(e) }

  unless invalid_entries.empty?
    raise ArgumentError, _('Error: the following values are invalid: %{invalid_entries}') % { invalid_entries: invalid_entries }
  end

  val
end

.valid_module_name?(string) ⇒ Boolean

Validate the module name against the regular expression in the documentation: docs.puppet.com/puppet/4.10/modules_fundamentals.html#allowed-module-names

Returns:

  • (Boolean)


22
23
24
# File 'lib/pdk/cli/util/option_validator.rb', line 22

def self.valid_module_name?(string)
  !(string =~ %r{\A[a-z][a-z0-9_]*\Z}).nil?
end

.valid_namespace?(string) ⇒ Boolean

Validate a Puppet namespace against the regular expression in the documentation: docs.puppet.com/puppet/4.10/lang_reserved.html#classes-and-defined-resource-types

Returns:

  • (Boolean)


37
38
39
40
41
# File 'lib/pdk/cli/util/option_validator.rb', line 37

def self.valid_namespace?(string)
  return false if (string || '').split('::').last == 'init'

  !(string =~ %r{\A([a-z][a-z0-9_]*)(::[a-z][a-z0-9_]*)*\Z}).nil?
end

.valid_param_name?(string) ⇒ Boolean

Validate that a class/defined type parameter matches the regular expression in the documentation: docs.puppet.com/puppet/4.10/lang_reserved.html#parameters The parameter should also not be a reserved word or overload a metaparameter.

Returns:

  • (Boolean)


50
51
52
53
54
55
56
# File 'lib/pdk/cli/util/option_validator.rb', line 50

def self.valid_param_name?(string)
  reserved_words = %w[trusted facts server_facts title name].freeze
  metaparams = %w[alias audit before loglevel noop notify require schedule stage subscribe tag].freeze
  return false if reserved_words.include?(string) || metaparams.include?(string)

  !(string =~ %r{\A[a-z][a-zA-Z0-9_]*\Z}).nil?
end