Skip to content

Latest commit

 

History

History
456 lines (273 loc) · 11.3 KB

History.rdoc

File metadata and controls

456 lines (273 loc) · 11.3 KB

4.8.0 / 2023-09-28

  • 2 minor enhancements:

    • Added ability to pass down option overrides through Flog.run.

    • Removed ancient File.binread alias.

  • 1 bug fix:

    • Added missing rdoc.

4.7.0 / 2023-07-18

  • 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.

4.6.6 / 2022-07-03

  • 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)

4.6.5 / 2022-04-09

  • 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).

4.6.4 / 2019-12-14

  • 2 minor enhancements:

    • Added basic support for safe_call (nic-potter).

    • Added extra complexity penalty to safe_call processing.

4.6.3 / 2019-09-14

  • 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).

4.6.2 / 2018-02-14

  • 1 bug fix:

    • Don’t process stdin if cmdline args expand to nothing.

4.6.1 / 2017-02-08

  • 1 bug fix:

    • Fixed max line number in range report. AKA I’m an idiot.

4.6.0 / 2017-02-01

  • 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.

4.5.0 / 2017-01-19

  • 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).

4.4.1 / 2017-01-13

  • 1 bug fix:

    • Fixed scoring of Rational lits.

4.4.0 / 2016-05-16

  • 1 minor enhancement:

    • Switched to path_expander to deal with cmdline args. See path_expander for details.

4.3.2 / 2015-01-30

  • 1 bug fix:

    • Fixed rdoc url (phiggins)

4.3.1 / 2015-01-09

  • 1 bug fix:

    • Fixed to_proc_normal scoring on ruby 2.2+. (teoljungberg)

4.3.0 / 2014-07-18

  • 1 minor enhancement:

    • Added methods_only param to FlogTask. (jocranford)

4.2.1 / 2014-05-29

  • 2 bug fixes:

    • Fixed grouping by class name. (guilhermesimoes)

    • Removed dead rubyforge setting in Rakefile

4.2.0 / 2013-10-18

  • 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.

4.1.2 / 2013-09-05

  • 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)

4.1.1 / 2013-07-11

  • 1 minor enhancement:

    • Added max_method to delegators.

  • 1 bug fix:

    • Fixed FlogTask to use FlogCLI. (envygeeks)

4.1.0 / 2013-05-10

  • 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.

4.0.0 / 2013-04-18

  • 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)

3.2.3 / 2013-03-21

  • 1 bug fix:

    • Don’t blow up if a path doesn’t exist or isn’t readable.

3.2.2 / 2013-01-22

  • 1 bug fix:

    • Fixed stupid error when run on empty file.

3.2.1 / 2012-12-19

  • 1 bug fix:

    • Relaxed (and fixed) the ruby_parser dependency.

3.2.0 / 2012-12-18

  • 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)

3.1.0 / 2012-11-16

  • 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.

3.0.0 / 2012-11-02

  • 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.

3.0.0.b3 / 2012-10-22

  • 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)

3.0.0.b2 / 2012-08-07

  • 1 bug fix:

    • Fix for sexp structure changes (no arglists).

3.0.0.b1 / 2012-07-26

  • 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

2.5.3 / 2011-09-21

  • 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.

2.5.2 / 2011-08-11

  • 1 minor enhancement:

    • Improved parse error output. (impurist)

2.5.1 / 2011-02-18

  • 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)

2.5.0 / 2010-09-01

  • 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)

2.4.0 / 2009-12-15

  • 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)

2.3.0 / 2009-12-09

  • 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.

2.2.0 / 2009-08-14

  • 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?

2.1.2 / 2009-06-24

  • 1 bug fix:

    • Fixed dependency spec on ruby_parser. (jan)

2.1.1 / 2009-06-23

  • 2 minor enhancements:

    • Added mass accessor for gauntlet and other automated processors

    • Switched from ParseTree to ruby_parser. Only 3x slower! :(

2.1.0 / 2009-03-16

  • 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

2.0.0 / 2009-01-20

  • 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(“ ”) # :-)

1.2.0 / 2008-10-22

  • 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.

1.1.0 / 2007-08-21

  • 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.0.2 / 2007-08-01

  • 1 bug fix:

    • stupid rubygems bin wrapper… sigh

1.0.1 / 2007-08-01

  • 1 bug fix:

    • New Rule: NEVER release new software when exhausted: Fixed dependency list.

1.0.0 / 2007-08-01

  • 1 major enhancement:

    • Birthday!