Quantcast
Channel: TDD – Michael Grosser, the Blog
Viewing all articles
Browse latest Browse all 6

Ruby Code Duplication Detection with Flay

$
0
0

Flay is terribly useful, but has terribly usability …

If the repo was not such a mess I’d make PRs to fix it, but tests are not even runnable and PRs to make the Readme readabe got rejected … so I’m not going to bother … a small excerpt from Samson
More config options can be found on it’s homepage
Just wanted to share this useful rake task which found a bunch of duplication and already prevented me from adding new duplication twice🙂

desc "Analyze for code duplication (large, identical syntax trees) with fuzzy matching."
task :flay do
  require 'flay' # do not require in production

  # FIXME: flay has a --mass option, but it ignores everything
  Flay.prepend(Module.new do
    def analyze(*)
      data = super
      data.select! { |i| i.mass > 50 }
      self.total = data.sum(&:mass)
      data
    end
  end)

  files = Dir["{config,lib,app/**/*.{rb,erb}"]
  files -= [
    # Things you want to ignore
  ]
  flay = Flay.run(files)
  abort "Code duplication found" if flay.report.any?
end

Tagged: Ruby, TDD, Test

Viewing all articles
Browse latest Browse all 6

Latest Images

Trending Articles





Latest Images