Class: Inspec::Input::NO_VALUE_SET

Inherits:
Object
  • Object
show all
Defined in:
lib/inspec/input.rb

Overview

#
Class NO_VALUE_SET
#

This special class is used to represent the value when an input has not been assigned a value. This allows a user to explicitly assign nil to an input.

Instance Method Summary collapse

Constructor Details

#initialize(name, warn_on_create = true) ⇒ NO_VALUE_SET

rubocop: disable Naming/ClassAndModuleCamelCase



108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/inspec/input.rb', line 108

def initialize(name, warn_on_create = true)
  @name = name

  # output warn message if we are in a exec call
  if warn_on_create && Inspec::BaseCLI.inspec_cli_command == :exec
    Inspec::Log.warn(
      "Input '#{@name}' does not have a value. "\
      "Use --input-file or --input to provide a value for '#{@name}' or specify a  "\
      "value with `input('#{@name}', value: 'somevalue', ...)`."
    )
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(*_) ⇒ Object



121
122
123
# File 'lib/inspec/input.rb', line 121

def method_missing(*_)
  self
end

Instance Method Details

#is_a?(klass) ⇒ Boolean

Returns:

  • (Boolean)


133
134
135
136
137
138
139
140
# File 'lib/inspec/input.rb', line 133

def is_a?(klass)
  if klass == Inspec::Attribute::DEFAULT_ATTRIBUTE
    Inspec.deprecate(:rename_attributes_to_inputs, "Don't check for `is_a?(Inspec::Attribute::DEFAULT_ATTRIBUTE)`, check for `Inspec::Input::NO_VALUE_SET")
    true # lie for backward compatibility
  else
    super(klass)
  end
end

#kind_of?(klass) ⇒ Boolean

Returns:

  • (Boolean)


142
143
144
145
146
147
148
149
# File 'lib/inspec/input.rb', line 142

def kind_of?(klass)
  if klass == Inspec::Attribute::DEFAULT_ATTRIBUTE
    Inspec.deprecate(:rename_attributes_to_inputs, "Don't check for `kind_of?(Inspec::Attribute::DEFAULT_ATTRIBUTE)`, check for `Inspec::Input::NO_VALUE_SET")
    true # lie for backward compatibility
  else
    super(klass)
  end
end

#respond_to_missing?(_, _) ⇒ Boolean

Returns:

  • (Boolean)


125
126
127
# File 'lib/inspec/input.rb', line 125

def respond_to_missing?(_, _)
  true
end

#to_sObject



129
130
131
# File 'lib/inspec/input.rb', line 129

def to_s
  "Input '#{@name}' does not have a value. Skipping test."
end