dkubb / yardstick

A tool for verifying YARD documentation coverage
http://wiki.github.com/dkubb/yardstick
MIT License
172 stars 22 forks source link

Violations with identical docstring not included in output #42

Closed backus closed 8 years ago

backus commented 8 years ago

This is a regression in master:

$ cat example.rb
class Foo
  def bar
  end

  def baz
  end
end
$ bin/yardstick example.rb
example.rb:2: Foo#bar: @api should be specified
example.rb:2: Foo#bar: @api should be public, semipublic, or private
example.rb:2: Foo#bar: @example should be specified for public and semipublic methods
example.rb:2: Foo#bar: method summary should be specified
example.rb:2: Foo#bar: @return should be specified

YARD-Coverage: 50.0%  Success: 5  Failed: 5  Total: 10

Expected output would be

$ bin/yardstick example.rb
example.rb:2: Foo#bar: @api should be specified
example.rb:2: Foo#bar: @api should be public, semipublic, or private
example.rb:2: Foo#bar: @example should be specified for public and semipublic methods
example.rb:2: Foo#bar: method summary should be specified
example.rb:2: Foo#bar: @return should be specified
example.rb:5: Foo#baz: @api should be specified
example.rb:5: Foo#baz: @api should be public, semipublic, or private
example.rb:5: Foo#baz: @example should be specified for public and semipublic methods
example.rb:5: Foo#baz: method summary should be specified
example.rb:5: Foo#baz: @return should be specified

YARD-Coverage: 50.0%  Success: 10  Failed: 10  Total: 20

Bisecting points to https://github.com/dkubb/yardstick/commit/bfe789931b10f756877d86f0e72e4cf81e8c751d which added concord in order to replace some initializer boilerplate. Concord includes Equalizer though which caused a change in behavior with Yardstick::DocumentSet. In the example above, both methods have a docstring of "" so they are identical in terms of a DocumentSet once equalizer is included.