class RuboCop::Cop::Chef::Style::UsePlatformHelpers
Use the platform?() and platform_family?() helpers instead of node == ‘foo’ and node == ‘bar’. These helpers are easier to read and can accept multiple platform arguments, which greatly simplifies complex platform logic.
@example
### incorrect node['platform'] == 'ubuntu' node['platform_family'] == 'debian' node['platform'] != 'ubuntu' node['platform_family'] != 'debian' %w(rhel suse).include?(node['platform_family']) node['platform'].eql?('ubuntu') ### correct platform?('ubuntu') !platform?('ubuntu') platform_family?('debian') !platform_family?('debian') platform_family?('rhel', 'suse')
Constants
- MSG
- RESTRICT_ON_SEND
Public Instance Methods
Source
# File lib/rubocop/cop/chef/style/use_platform_helpers.rb, line 59 def on_send(node) platform_equals?(node) do |type, operator, plat| add_offense(node, severity: :refactor) do |corrector| corrected_string = (operator == :!= ? '!' : '') + "#{type.value}?('#{plat.value}')" corrector.replace(node, corrected_string) end end platform_include?(node) do |plats, type| add_offense(node, severity: :refactor) do |corrector| platforms = plats.values.map { |x| x.str_type? ? "'#{x.value}'" : x.source } corrected_string = "#{type.value}?(#{platforms.join(', ')})" corrector.replace(node, corrected_string) end end platform_eql?(node) do |type, plat| add_offense(node, severity: :refactor) do |corrector| corrected_string = "#{type.value}?('#{plat.value}')" corrector.replace(node, corrected_string) end end end