Skip to content

Latest commit

 

History

History
93 lines (80 loc) · 2.39 KB

YAML-Reports.md

File metadata and controls

93 lines (80 loc) · 2.39 KB

YAML Reports

Introduction

Reek's --yaml option writes on $stdout a YAML dump of the smells found. Each reported smell has a number of standard fields and a number of fields that are specific to the smell's type. The common fields are as follows:

Field Type Value
source string The name of the source file containing the smell, or $stdin
lines array The source file line number(s) that contribute to this smell
context string The name of the class, module or method containing the smell
class string The class to which this smell belongs
subclass string This smell's subclass within the above class
message string The message that would have been printed in a standard Reek report
is_active boolean false if the smell is masked by a config file; true otherwise

All of these fields are grouped into hashes location, smell and status (see the examples below).

Examples

Duplication:

- !ruby/object:Reek::SmellWarning 
  location: 
    source: spec/samples/masked/dirty.rb
    lines: 
    - 5
    - 7
    context: Dirty#a
  smell: 
    class: Duplication
    subclass: DuplicateMethodCall
    occurrences: 2
    call: puts(@s.title)
    message: calls puts(@s.title) twice
  status:
    is_active: true

Nested Iterators:

- !ruby/object:Reek::SmellWarning 
  location: 
    source: spec/samples/masked/dirty.rb
    lines: 
    - 5
    context: Dirty#a
  smell: 
    class: NestedIterators
    subclass: ""
    depth: 2
    message: contains iterators nested 2 deep
  status:
    is_active: true

Uncommunicative Method Name:

- !ruby/object:Reek::SmellWarning 
  location: 
    source: spec/samples/masked/dirty.rb
    lines: 
    - 3
    context: Dirty#a
  smell: 
    class: UncommunicativeName
    subclass: UncommunicativeMethodName
    method_name: a
    message: has the name 'a'
  status:
    is_active: false

Uncommunicative Variable Name:

- !ruby/object:Reek::SmellWarning 
  location: 
    source: spec/samples/masked/dirty.rb
    lines: 
    - 5
    context: Dirty#a
  smell: 
    class: UncommunicativeName
    subclass: UncommunicativeVariableName
    variable_name: x
    message: has the variable name 'x'
  status:
    is_active: true