Sha256: 1d635c73c90920bc41e457e191812e317e8f37edbf40ce348798909f1cdac6f6
Contents?: true
Size: 1.03 KB
Versions: 6
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true require_relative 'smell_detector' require_relative 'smell_warning' module Reek module Smells # # It is considered good practice to annotate every class and module # with a brief comment outlining its responsibilities. # # See {file:docs/Irresponsible-Module.md} for details. class IrresponsibleModule < SmellDetector def self.contexts [:casgn, :class, :module] end # # Checks the given class or module for a descriptive comment. # # @return [Array<SmellWarning>] # def sniff(ctx) return [] if descriptive?(ctx) || ctx.namespace_module? expression = ctx.exp [smell_warning( context: ctx, lines: [expression.line], message: 'has no descriptive comment')] end private def descriptive @descriptive ||= {} end # :reek:FeatureEnvy def descriptive?(ctx) descriptive[ctx.full_name] ||= ctx.descriptively_commented? end end end end
Version data entries
6 entries across 6 versions & 1 rubygems