class RuboCop::RSpec::DescriptionExtractor::CodeObject
Decorator of a YARD code object for working with documented rspec cops
def abstract?
def abstract? yardoc.tags.any? { |tag| tag.tag_name.eql?('abstract') } end
def class_documentation?
def class_documentation? yardoc.type.equal?(:class) end
def configuration
-
(Hash)
-
def configuration { cop_name => { 'Description' => description } } end
def cop_name
def cop_name Object.const_get(documented_constant).cop_name end
def cop_subclass?
def cop_subclass? # YARD superclass resolution is a bit flaky: All classes loaded before # RuboCop::Cop::WorkaroundCop are shown as having RuboCop::Cop as # superclass, while all the following classes are listed as having # RuboCop::Cop::RSpec::Cop as their superclass. COP_CLASS_NAMES.include?(yardoc.superclass.path) end
def description
def description yardoc.docstring.split("\n\n").first.to_s end
def documented_constant
def documented_constant yardoc.to_s end
def initialize(yardoc)
def initialize(yardoc) @yardoc = yardoc end
def rspec_cop?
-
(Boolean)
-
def rspec_cop? class_documentation? && rspec_cop_namespace? && cop_subclass? && !abstract? end
def rspec_cop_namespace?
def rspec_cop_namespace? documented_constant.start_with?(RSPEC_NAMESPACE) end