Class: RuboCop::Cop::Chef::ChefCorrectness::MetadataMissingName

Inherits:
RuboCop::Cop
  • Object
show all
Includes:
RangeHelp
Defined in:
lib/rubocop/cop/chef/correctness/metadata_missing_name.rb

Constant Summary collapse

MSG =
'metadata.rb needs to include the name method or it will fail on Chef Infra Client 12 and later.'.freeze

Instance Method Summary collapse

Instance Method Details

#autocorrect(_node) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/rubocop/cop/chef/correctness/metadata_missing_name.rb', line 45

def autocorrect(_node)
  lambda do |_corrector|
    path = processed_source.path
    cb_name = File.basename(File.dirname(path))

     = IO.read(path)
    IO.write(path, "name '#{cb_name}'\n" + )
  end
end

#investigate(processed_source) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/rubocop/cop/chef/correctness/metadata_missing_name.rb', line 34

def investigate(processed_source)
  return if processed_source.blank?

  # Using range similar to RuboCop::Cop::Naming::Filename (file_name.rb)
  range = source_range(processed_source.buffer, 1, 0)

  add_offense(nil, location: range, message: MSG, severity: :refactor) unless cb_name(processed_source.ast).any?
end