class RuboCop::Cop::Chef::Correctness::NodeNormalUnless

Normal attributes are discouraged since their semantics differ importantly from the default and override levels. Their values persist in the node object even after all code referencing them has been deleted, unlike default and override.

Code should be updated to use default or override levels, but this will change attribute merging behavior so needs to be validated manually and force_default or force_override levels may need to be used in recipe code.

@example

#### incorrect
node.normal_unless['foo'] = true

#### correct
node.default_unless['foo'] = true
node.override_unless['foo'] = true
node.force_default_unless['foo'] = true
node.force_override_unless['foo'] = true

Constants

MSG
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/chef/correctness/node_normal_unless.rb, line 44
def on_send(node)
  node_normal_unless?(node) do
    add_offense(node, severity: :refactor)
  end
end