Flay – analyzes code for structural similarities

Flay analyzes code for structural similarities. Differences in literal values, variable, class, method names, whitespace, programming style, braces vs do/end, etc are all ignored.

This is free and open source software.

  • Reports differences at any level of code.
  • Adds a score multiplier to identical nodes.
  • Differences in literal values, variable, class, and method names are ignored.
  • Differences in whitespace, programming style, braces vs do/end, etc are ignored.
  • Works across files.
    • Add the flay-persistent plugin to work across large/many projects.
  • Run –diff to see an N-way diff of the code.
  • Provides conservative (default) and –liberal pruning options.
  • Provides –fuzzy duplication detection.
  • Language independent: Plugin system allows other languages to be flayed.
    • Ships with .rb and .erb.
    • JavaScript and others will be available separately.
  • Includes FlayTask for Rakefiles.
  • Uses path_expander, so you can use:
    • dir_arg – expand a directory automatically
    • @file_of_args – persist arguments in a file
    • -path_to_subtract – ignore intersecting subsets of files/directories
  • Skips files matched via patterns in .flayignore (subset format of .gitignore).

Website: github.com/seattlerb/flay
Support:
Developer: Ryan Davis
License: MIT License

Flay is written in Ruby. Learn Ruby with our recommended free books and free tutorials.


Explore Linux

Best Free and Open Source Software - A huge collection of recommended free and open source software covering every major category.
In-depth Linux Software Reviews - Detailed assessments of Linux software covering features, usability and overall quality.

The Big List of Active Linux Distros - An extensive collection of actively developed Linux distributions.
Open Source Alternatives - Alternatives to software and services from Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle and others.
Essential Linux System Tools - Indispensable utilities for monitoring, maintaining and managing Linux systems.
Linux Productivity Tools - Useful utilities for improving productivity and streamlining everyday tasks.
Alternatives to Popular CLI Tools - Modern alternatives to familiar command-line utilities supplied with Linux systems.
Awesome Free Linux Game Tools - Tools, utilities and companion software that improve gaming on Linux.
Machine Learning on Linux - Machine learning and deep learning software, self-hosted applications and practical tools.
Saving Money with Linux - Practical ways to reduce electricity consumption and lower computing costs with Linux.
Linux Candy - Fun, entertaining and sometimes delightfully quirky software from the lighter side of Linux.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted