Class: RuboCop::Cop::Chef::RedundantCode::PropertyWithRequiredAndDefault
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Chef::RedundantCode::PropertyWithRequiredAndDefault
- Extended by:
- AutoCorrector
- Includes:
- RangeHelp
- Defined in:
- lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb
Overview
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.
Constant Summary collapse
- MSG =
'Resource properties should not be both required and have a default value. This will fail on Chef Infra Client 13+'
- RESTRICT_ON_SEND =
[:property, :attribute].freeze
Instance Method Summary collapse
Methods inherited from Base
Instance Method Details
#on_send(node) ⇒ Object
49 50 51 52 53 54 55 56 |
# 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, 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 |