class RuboCop::Cop::Generator::ConfigurationInjector
A class that injects a require directive into the root RuboCop
file. It looks for other directives that require files in the same (cop) namespace and injects the provided one in alpha
Constants
- TEMPLATE
Attributes
badge[R]
configuration_file_path[R]
output[R]
version_added[R]
Public Class Methods
new(configuration_file_path:, badge:, version_added:)
click to toggle source
# File lib/rubocop/cop/generator/configuration_injector.rb, line 18 def initialize(configuration_file_path:, badge:, version_added:) @configuration_file_path = configuration_file_path @badge = badge @version_added = version_added @output = output end
Public Instance Methods
inject() { || ... }
click to toggle source
# File lib/rubocop/cop/generator/configuration_injector.rb, line 25 def inject configuration_entries.insert(find_target_line, new_configuration_entry) File.write(configuration_file_path, configuration_entries.join) yield if block_given? end
Private Instance Methods
configuration_entries()
click to toggle source
# File lib/rubocop/cop/generator/configuration_injector.rb, line 38 def configuration_entries @configuration_entries ||= File.readlines(configuration_file_path) end
cop_name_line?(yaml)
click to toggle source
# File lib/rubocop/cop/generator/configuration_injector.rb, line 55 def cop_name_line?(yaml) yaml !~ /^[\s#]/ end
find_target_line()
click to toggle source
# File lib/rubocop/cop/generator/configuration_injector.rb, line 46 def find_target_line configuration_entries.find.with_index do |line, index| next unless cop_name_line?(line) return index if badge.to_s < line end configuration_entries.size - 1 end
new_configuration_entry()
click to toggle source
# File lib/rubocop/cop/generator/configuration_injector.rb, line 42 def new_configuration_entry format(TEMPLATE, badge: badge, version_added: version_added) end