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)


7
8
9
# File 'lib/pdk/cli/util/option_validator.rb', line 7

def self.comma_separated_list?(list, _options = {})
  /^[\w-]+(?:,[\w-]+)+$/.match?(list)
end

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

Raises:

  • (ArgumentError)


16
17
18
19
20
21
22
23
# File 'lib/pdk/cli/util/option_validator.rb', line 16

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

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

  val
end

.valid_fact_name?(name) ⇒ Boolean

Returns true if the fact name is valid.

Returns:

  • (Boolean)

    true if the fact name is valid



12
13
14
# File 'lib/pdk/cli/util/option_validator.rb', line 12

def self.valid_fact_name?(name)
  name.length > 1
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)


27
28
29
# File 'lib/pdk/cli/util/option_validator.rb', line 27

def self.valid_module_name?(string)
  !(string =~ /\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)


42
43
44
45
46
# File 'lib/pdk/cli/util/option_validator.rb', line 42

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

  !(string =~ /\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)


56
57
58
59
60
61
62
# File 'lib/pdk/cli/util/option_validator.rb', line 56

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

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