class RuboCop::Cop::Chef::RedundantCode::PropertyWithRequiredAndDefault

When using properties in a custom resource you shouldn't set a property to required and then provide a default value. If a property is required the user will always pass in a value and the default will never be used. In Chef Infra Client 13+ this became an error.

@example

#### incorrect
property :bob, String, required: true, default: 'foo'

#### correct
property :bob, String, required: true

Constants

MSG
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb, line 49
def on_send(node)
  required_and_default?(node) do |default|
    add_offense(node, message: MSG, severity: :refactor) do |corrector|
      range = range_with_surrounding_comma(range_with_surrounding_space(range: default.loc.expression, side: :left), :left)
      corrector.remove(range)
    end
  end
end