-
2 minor enhancements:
-
Added ability to pass down option overrides through Flog.run.
-
Removed ancient File.binread alias.
-
-
1 bug fix:
-
Added missing rdoc.
-
-
3 minor enhancements:
-
Extend flog to process complex numbers. (petergoldstein)
-
Only penalize magic numbers if they’re not assigned to a const (excludes 0/-1).
-
Renamed :lit_fixnum to :magic_number.
-
-
1 minor enhancement:
-
Added support for to_proc w/ hash(?!?). (t-kinoshita)
-
-
2 bug fixes:
-
Removed to_proc_normal (eg &:sym/call) as benchmarks are much better.
-
ruby3: Fixed anonymous block pass. (prtngn)
-
-
1 minor enhancement:
-
Changed :iter scoring from branch to block_call (same score).
-
-
1 bug fix:
-
Fixed support for ruby 3 (only affected block_pass / to_proc_normal).
-
-
2 minor enhancements:
-
Added basic support for safe_call (nic-potter).
-
Added extra complexity penalty to safe_call processing.
-
-
1 minor enhancement:
-
Removed –18 and –19 options to cmdline. No real value anymore.
-
-
2 bug fixes:
-
Fixed some sexp access under STRICT_SEXP=2.
-
Fixed option / arg processing bug that caused a hang (reading from stdin).
-
-
1 bug fix:
-
Don’t process stdin if cmdline args expand to nothing.
-
-
1 bug fix:
-
Fixed max line number in range report. AKA I’m an idiot.
-
-
2 minor enhancements:
-
Bumped dependency on sexp_processor to 4.8 and up.
-
Include new Sexp#line_max info for in_method so DSLs can record line span.
-
-
3 minor enhancements:
-
Added -t=N and –threshold N processing to FlogCLI.
-
Added tweakable threshold to Flog (still defaults to 60%).
-
Renamed Flog::THRESHOLD to Flog::DEFAULT_THRESHOLD (but kept an alias around).
-
-
1 bug fix:
-
Fixed scoring of Rational lits.
-
-
1 minor enhancement:
-
Switched to path_expander to deal with cmdline args. See path_expander for details.
-
-
1 bug fix:
-
Fixed rdoc url (phiggins)
-
-
1 bug fix:
-
Fixed to_proc_normal scoring on ruby 2.2+. (teoljungberg)
-
-
1 minor enhancement:
-
Added methods_only param to FlogTask. (jocranford)
-
-
2 bug fixes:
-
Fixed grouping by class name. (guilhermesimoes)
-
Removed dead rubyforge setting in Rakefile
-
-
3 minor enhancements:
-
Added –extended / -e to put file:line output on next line (for rubymine & friends)
-
Extracted MethodBasedSexpProcessor and pushed up to sexp_processor gem.
-
Updated dependency on sexp_processor to ~> 4.4.
-
-
2 bug fixes:
-
Don’t even record a score if method stack is empty and user used –methods-only.
-
Fixed Flog task’s default method. (jasonrobertfox)
-
-
1 minor enhancement:
-
Added max_method to delegators.
-
-
1 bug fix:
-
Fixed FlogTask to use FlogCLI. (envygeeks)
-
-
3 minor enhancements:
-
Cleaned up tests by adding assert_hash_in_epsilon. yay!
-
Fixed method_location is now cleared on #reset. (makaroni4)
-
to_proc_normal is now penalized based on RUBY_VERSION. Scores were benchmarked.
-
-
1 bug fix:
-
Fixed code/home urls in readme/gem.
-
-
1 major enhancement:
-
Renamed Flog#methods to #method_scores. (makaroni4)
-
-
4 minor enhancements:
-
Added accessors for methods, scores. Now available for CIs! (makaroni4)
-
Refactored calculations down to 2 methods: total_score and totals. (makaroni4)
-
Refactored to #calculate, #threshold. (makaroni4)
-
Track stack of nested sclass scopes for parser (pithyless)
-
-
1 bug fix:
-
Don’t blow up if a path doesn’t exist or isn’t readable.
-
-
1 bug fix:
-
Fixed stupid error when run on empty file.
-
-
1 bug fix:
-
Relaxed (and fixed) the ruby_parser dependency.
-
-
4 minor enhancements:
-
Ensure rake/tasklib is loaded when defining FlogTask. (ferrous26)
-
Fixed reporting / recording of methods in singleton class blocks. (mihu)
-
Refactored error handling code to flog_ruby. Calls flog_ruby! for actual work
-
Refactored ruby processing code to flog_ruby!
-
-
1 bug fix:
-
Fixed flogging of || iters. (JacobNinja)
-
-
4 minor enhancements:
-
–quiet option is now false by default, and changed to silence parse warnings.
-
Added max_score and max_method. (aselder)
-
FlogTask can now take a method to use to figure out score, allowing for total or max_score.
-
Switched to capturing RubyParser::SyntaxError (RP 3.0 change).
-
-
2 bug fixes:
-
Avoid redefined warning for File::RUBY19. (svendahlstrand)
-
Fixed flog to default to RubyParser if not specified. Allows cleaner programmatic access.
-
-
1 minor enhancement:
-
Added a timeout handler to skip when RubyParser times out on a large file
-
-
1 bug fix:
-
Fixed handling of plain literals in masgn in args.
-
-
4 minor enhancements:
-
Added .rake as a supported extension.
-
Create a new parser for every file, preventing state barkification
-
Extended DSL support to include hash args (eg task :blah => :dep).
-
Extended DSL support to report nested names (eg namespace(blah)::task#woot)
-
-
1 bug fix:
-
Fix for sexp structure changes (no arglists).
-
-
4 minor enhancements:
-
Added –18 and –19 flags to specify parser. Defaults to hybrid.
-
Explicitly use Ruby18Parser to remove deprecation warnings.
-
Modified processor to deal with cleaner sexps from RP 3.x.
-
Use File.binread (File.read in 1.8) to bypass encoding errors
-
-
2 bug fixes:
-
Cleaned up some 1.9 warnings.
-
Fixed failing tests against ruby_parser 3
-
-
1 minor enhancement:
-
class_stack now always pushes on symbols or strings for class names.
-
-
1 bug fix:
-
Fixed klass_name returning an ugly mix of sexps and strings.
-
-
1 minor enhancement:
-
Improved parse error output. (impurist)
-
-
3 minor enhancements:
-
Added RegexpError to error handler.
-
Improved error output and suggest –continue
-
Record the flog score for the full class name, not just suffix. (dkubb)
-
-
1 bug fix:
-
Fixed block_pass when passed a multi-level const (xavier)
-
-
1 major enhancement:
-
Added plugin system. Define a module under Flog to extend it.
-
-
3 minor enhancements:
-
Added special case penalty for wtf to_proc: blah(&b = proc {…}) (benjaminb)
-
Improved tests and test coverage.
-
Unfactored & refactored report code. Much cleaner and more maintainable now.
-
-
2 bug fixes:
-
Fixed API change for FlogTask (andreacampi)
-
Fixed bad edgecase handler for block_pass (benjaminb)
-
-
4 minor enhancements:
-
Cleaned method_name to return “#method” or “::method”.
-
DSL reporting now handles regexp literals for ‘method’ names (Marty Andrews)
-
Improved tests for process_iter’s myriad complexities.
-
More doco!
-
-
1 bug fix:
-
Fixed DSL reporting excluding solo-blocks. (eg a single rake task)
-
-
1 major enhancement:
-
Added file:line info to the flog report (Marty Andrews)
-
-
13 minor enhancements:
-
Added .autotest.
-
Deleted pre-gauntlet scripts.
-
Flog#method_name now at least tries show when it is a class method.
-
Flog.parse_options now takes args directly.
-
Removed Flog#increment_total_score_by.
-
Removed Flog#output_summary.
-
Removed Flog#process_attrset.
-
Removed Flog#record_method_score.
-
Removed Flog#summarize_method.
-
Removed Flog::default_options.
-
Renamed Flog#analyze_list to process_until_empty.
-
Renamed Flog#options to #option
-
Rewrote entire test suite (3100 lines down!). Cleaner and less brittle.
-
-
1 minor enhancement:
-
#mass pushed up to sexp_processor
-
-
5 bug fixes:
-
–group didn’t use canonical class name.
-
Fixed bin/flog to use flog, not flog_files (removed in last rev)
-
Fixed crasher when processing a block with empty goalposts.
-
Switching to ruby_parser broke ERB syntax error handling. (imccoy)
-
skip empty files instead of crashing. yay?
-
-
1 bug fix:
-
Fixed dependency spec on ruby_parser. (jan)
-
-
2 minor enhancements:
-
Added mass accessor for gauntlet and other automated processors
-
Switched from ParseTree to ruby_parser. Only 3x slower! :(
-
-
5 minor enhancements:
-
Added –group to aggregate and sort by class scores.
-
Added flog_task.rb
-
Made -q default, removed -n.
-
Made report output more readable and processable.
-
Moved option processing from bin/flog to lib/flog.rb for better testing.
-
-
1 bug fix:
-
removed extra attr_readers for total and average. doh
-
-
1 major enhancement:
-
Pulled in and merged Rick Bradley’s awesome flame project into flog.
-
-
1 minor enhancement:
-
Added gauntlet plugin
-
-
1 bug fix:
-
“hugh sasse”.split(/s/).map{|x|x.capitalize}.join(“ ”) # :-)
-
-
14 minor enhancements:
-
Added -c flag to continue dispite errors.
-
Added -m to only report code in methods (skips #none).
-
Added -n flag to give NO method details (summary only)
-
Added -n to skip method details… pussies should learn grep.
-
Added -q to quiet method details (total per method only)
-
Added avg & stddev to total.
-
Added avg score per method to report.
-
Added lots of doco from contributors. Thanks Hugh Sasse!
-
Fixed class names when const2/3.
-
Fixed unified ruby changes
-
Refactored flog with help from flay.
-
Refactored get_source_index
-
Refactored into gem_updater.rb and cleaned up.
-
Works with new incremental rubygems, albiet slower than before.
-
-
3 major enhancements:
-
Added assignments and branches and a lot of other stuff. rad.
-
Added process_iter section for DSL style blocks (rake tasks etc).
-
Made Flog usable as a library.
-
-
12 minor enhancements:
-
Added -a flag to turn off threshold culling for other tools.
-
Added -s for summarizing the score.
-
Added -v feedback to know what file you’re flogging.
-
Added branching penalty so tons of nested conditionals get beat down.
-
Added send (3).
-
Capture and ignore SyntaxErrors from template/generator code. Stupid DHH.
-
Report can now take an IO object.
-
block_args now penalizes all non-benign forms of block_pass.
-
Added usage to bin/flog. Moved -I processing to bin/flog.
-
Added unpack.rb and update_scores.rb at base level (not installed)
-
Added scoring for block_pass.
-
Converted totals to use distance formula on ABC’s.
-
-
3 bug fixes:
-
Ran flog on every latest gem available. Found a bunch of problems.
-
Use a stack for both class/module and method accounting.
-
block_args weren’t processing the arg
-
-
1 bug fix:
-
stupid rubygems bin wrapper… sigh
-
-
1 bug fix:
-
New Rule: NEVER release new software when exhausted: Fixed dependency list.
-
-
1 major enhancement:
-
Birthday!
-