-
2 bug fixes:
-
Add secondary sort of score & files on output. (njhammond)
-
Sort input files to make tracking progress easier.
-
-
1 bug fix:
-
Pass dirs to Flay.run in FlayTask. (adam12)
-
-
1 minor enhancement:
-
Brought in action_view erubi hacks to enable block calls w/ <%= forms.
-
-
1 minor enhancement:
-
Switched from erubis to erubi for erb processing. (clive-devops)
-
-
1 bug fix:
-
Minor cleanup and top-level error handling changes.
-
-
1 bug fix:
-
Fixed some sexp access under STRICT_SEXP=1.
-
-
1 minor enhancement:
-
Switched node filtering to happen before processing to avoid subtrees getting processed. Thanks to codeclimate.com for funding this effort!
-
-
2 minor enhancements:
-
Added ‘filters` option to skip processing subtrees that match given patterns.
-
Switched structural_hash to use crc32 to calculate node type values. Thanks to codeclimate.com!
-
-
1 bug fix:
-
Merge options w/ defaults. Mostly to fix testing.
-
-
1 minor enhancement:
-
Added sexp tree filtering via :filters option.
-
-
1 minor enhancement:
-
Added Sexp#pure_ruby_hash from flay-persistent and switched structural_hash to it. Faster than ruby’s #hash and stable.
-
-
1 bug fix:
-
Accidentally removed require from flay_task.rb. (ajacques)
-
-
1 minor enhancement:
-
Switched to path_expander to deal with cmdline args. See path_expander for details.
-
-
2 bug fixes:
-
Added dev deps and bundler plugin to make flavorjones happy. (flavorjones)
-
Explicitly require rake/tasklib in flay_task.rb. (jasonkarns)
-
-
1 minor enhancement:
-
Switched to erubis to make more compatible w/ rails usage.
-
-
1 bug fix:
-
Fixed frozen string modification error on ruby 2.0+. (apiology)
-
-
2 minor enhancements:
-
Added support for .flayignore files. (kcdragon)
-
Added Flay.filter_files(files, ignore_path_or_io).
-
-
6 minor enhancements:
-
Added Flay::Item and Flay::Location to encapsulate analysis.
-
Added ‘–only nodetype` filter flag.
-
Flay#analyze now returns a nice data structure you can walk over.
-
Flay#report is now much more dumb. :)
-
Flay#report now takes an optional IO object.
-
Removed unused prune arg in Flay#report.
-
-
1 minor enhancement:
-
Allow plugins to provide sexp to source converters for –diff. (UncleGene)
-
-
1 bug fix:
-
Fixed –diff outputting twice if there are no comments. (kalenkov)
-
-
2 minor enhancements:
-
Refactored n_way_diff into split_and_group, collapse_and_label, and pad_with_empty_strings.
-
n_way_diff now does leading comments separately from the code, to better align diffs.
-
-
1 bug fix:
-
Fixed code/home urls in readme/gem.
-
Semantic versioning doesn’t take into account how AWESOME a release is. In this case, it severely falls short. I’d jump to 4.0 if I could.
-
2 major enhancements:
-
Added –fuzzy (ie copy, paste, & modify) duplication detection.
-
Added –liberal, which changes the way prune works to identify more duplication.
-
-
12 minor enhancements:
-
Added -# to turn off item numbering. Helps with diffs to compare runs over time.
-
Added Sexp#+.
-
Added Sexp#code_index to specify where *code starts in some sexps.
-
Added Sexp#has_code?.
-
Added Sexp#initialize_copy to propagate file/line/modified info.
-
Added Sexp#modified, #modified=, and #modified?.
-
Added Sexp#split_at(n). (Something I’ve wanted in Array for ages).
-
Added Sexp#split_code.
-
Added mass and diff options to rake debug.
-
Added rake run task w/ mass, diff, and liberal options
-
Made report’s sort more stable, so I can do better comparison runs.
-
Wrapped Sexp#[] to propagate file/line/modified info.
-
-
5 minor enhancements:
-
Added –timeout option. Defaults to 10 seconds.
-
Added ability for plugins to define options_<pluginname> method to extend options.
-
Flay no longer defaults to ‘.’ if no args given. Allows plugins to do more
-
Moved #analyze down to #report. #process only processes, nothing more.
-
Sort output for more stable reporting. Better for diffing against, my dear.
-
-
2 bug fixes:
-
Avoid redefined warning for File::RUBY19. (svendahlstrand)
-
Relaxed the ruby_parser dependency.
-
-
1 minor enhancement:
-
Added a timeout handler to skip when RubyParser times out on a large file
-
-
2 major enhancements:
-
Parses ruby 1.9! (still in beta)
-
Moved Sexp#deep_each and Sexp#each_sexp to sexp_processor
-
-
1 minor enhancements:
-
Use File.binread (File.read in 1.8) to bypass encoding errors
-
-
1 bug fix:
-
Fixed failing tests against ruby_parser 3
-
-
1 bug fix:
-
Fixes for 1.9 with –diff. (mmullis)
-
-
2 bug fixes:
-
Added flay require in flay_task
-
Switched to minitest. (doh)
-
-
2 minor enhancements:
-
Added extra error handling for ERB flay to deal with tons of bad ERB
-
Skip plugin if another version already loaded (eg local vs gem).
-
-
1 bug fix:
-
Fixed all tests that were having problems on 1.9 due to unstable hashes
-
-
4 minor enhancements:
-
Pushed Sexp#mass up to sexp_processor.
-
Removed #similarity #compare_to, #intersection, #triangle, and other cruft.
-
Renamed all_subhashes to all_structural_subhashes.
-
Renamed fuzzy_hash to structural_hash.
-
-
5 minor enhancements:
-
Added –summary to display flay scores per file.
-
Added –verbose to display processing progress.
-
Protect against syntax errors in bad code and continue flaying.
-
Removed fuzzy matching. Never got it to feel right. Slow. Broken on 1.9
-
Renamed –verbose to –diff.
-
-
3 minor enhancements:
-
Added gauntlet_flay.rb
-
Cached value of plugins loaded.
-
Refactored and separated analysis phase from process phase
-
-
1 bug fix:
-
Added bin dir to default dirs list in FlayTask
-
-
2 major enhancements:
-
Added flay_task.rb
-
Added plugin system (any flay_(c,java,js,etc).rb files).
-
-
4 minor enhancements:
-
Added expand_dirs_to_files and made dirs valid arguments.
-
Added flay_erb.rb plugin.
-
Added optparse option processing.
-
Refactored to make using w/in rake and other CI systems clean and easy.
-
-
7 minor enhancement:
-
Added -v verbose mode to print out N-way diff of the detected code.
-
Added identical node scoring and reporting.
-
Added the start of copy/paste+edit detection, not even close yet.
-
Added more tests.
-
Added rcov tasks
-
Clarified output a bit
-
Refactored process_sexps to make doing other languages/systems easier.
-
-
1 major enhancement
-
Birthday!
-