class RailsBestPractices::InlineDisables::InlineDisable
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
RailsBestPractices::Core::Check::new
# File lib/rails_best_practices/inline_disables/inline_disable.rb, line 9 def initialize(*args) super @disabled_errors = [] end
Public Instance Methods
check(filename, content)
click to toggle source
# File lib/rails_best_practices/inline_disables/inline_disable.rb, line 14 def check(filename, content) comments = CommentRipper.new(content).tap(&:parse).comments comments.each do |_sexp_type, statement, (line_number, _column)| add_as_disable_errors(filename, statement, line_number) end end
disabled?(error)
click to toggle source
# File lib/rails_best_practices/inline_disables/inline_disable.rb, line 21 def disabled?(error) error_key = [error.filename, error.line_number, error.type.split('::').last].join('-') disabled_error_keys.include?(error_key) end
Private Instance Methods
add_as_disable_error(filename, check_name, line_number)
click to toggle source
# File lib/rails_best_practices/inline_disables/inline_disable.rb, line 42 def add_as_disable_error(filename, check_name, line_number) @disabled_errors << RailsBestPractices::Core::Error.new( filename: filename, line_number: line_number, message: 'disable by inline comment', type: check_name, url: url ) end
add_as_disable_errors(filename, statement, line_number)
click to toggle source
# File lib/rails_best_practices/inline_disables/inline_disable.rb, line 32 def add_as_disable_errors(filename, statement, line_number) match = statement.match(/rails_b(?:est_)?p(?:ractices)?:disable (.*)/) return unless match check_names = match[1].split(',') check_names.each do |check_name| add_as_disable_error(filename, check_name.gsub(/Check$/, 'Review'), line_number) end end
disabled_error_keys()
click to toggle source
# File lib/rails_best_practices/inline_disables/inline_disable.rb, line 28 def disabled_error_keys @disabled_error_keys ||= Set.new(@disabled_errors.map { |e| [e.filename, e.line_number, e.type].join('-') }) end