class RuboCop::Cop::Chef::Deprecations::WindowsVersionHelpers

Use node and node data instead of the deprecated Windows::VersionHelper helpers from the Windows cookbook.

@example

#### incorrect
Windows::VersionHelper.nt_version
Windows::VersionHelper.server_version?
Windows::VersionHelper.core_version?
Windows::VersionHelper.workstation_version?

#### correct
node['platform_version'].to_f
node['kernel']['product_type'] == 'Server'
node['kernel']['server_core']
node['kernel']['product_type'] == 'Workstation'

Constants

MSG
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb, line 51
def on_send(node)
  windows_helper?(node) do |method|
    add_offense(node, severity: :refactor) do |corrector|
      case method
      when :nt_version
        corrector.replace(node, 'node[\'platform_version\'].to_f')
      when :server_version?
        corrector.replace(node, 'node[\'kernel\'][\'product_type\'] == \'Server\'')
      when :core_version?
        corrector.replace(node, 'node[\'kernel\'][\'server_core\']')
      when :workstation_version?
        corrector.replace(node, 'node[\'kernel\'][\'product_type\'] == \'Workstation\'')
      end
    end
  end
end