=== 2.4.4 / 2019-09-24 * 1 bug fix: * Fixed deprecation warnings from patterns change in sexp_processor. === 2.4.3 / 2019-06-03 * 4 bug fixes: * Added shadow block args. (jaynetics) * Fixed generation for block args w/ trailing commas. * Fixed nested masgn block args and arrays. (jaynetics) * Fixes for stabby proc / lambda changes. === 2.4.2 / 2019-03-12 * 2 bug fixes: * Rewrote process_masgn to fix problems with nesting masgn in block args. * Use RubyParser directly instead of versioned parsers. === 2.4.1 / 2018-02-15 * 2 minor enhancements: * Added bitwise ops to BINARY. (david942j) * Added rewrite_call|if|until|while to normalize `not` in conditions. === 2.4.0 / 2017-07-17 * 1 major enhancement: * Major overhaul. Process methods no longer mutate arguments. * 1 minor enhancement: * Now SEXP_STRICT=1 clean. * 2 bug fixes: * Fixed 2.4 Fixnum deprecation warning * Fixed for new 24 parser. === 2.3.2 / 2016-11-30 * 5 bug fixes: * FINALLY fixed a problem with escaping in dstrs. (nex3) * Fix using match3 on LHS of call. (eqv) * Fixed handling defn that starts w/ begin+rescue+other stuff. (eqv) * Fixed return expressions with complex RHS. (eqv) * Tweaked sexp_processor dependency to ~> 4.6 to sync them better === 2.3.1 / 2016-10-09 * 1 minor enhancement: * Support more op_asgn nodes. (presidentbeef) * 1 bug fix: * Fix for non-binary 'binary' calls (eg arity > 1). (presidentbeef) === 2.3.0 / 2016-02-18 * 3 minor enhancements: * Added support for safe navigation/lonely operator. (presidentbeef) * Expanded tests for 2.3 support * Support safe attrasgn. (presidentbeef). === 2.2.0 / 2015-05-27 * 1 minor enhancement: * Normalized block arg goalposts (always there unless arg slot == 0). === 2.1.4 / 2015-04-13 * 1 minor enhancement: * Wrap fewer hash values in parentheses. (jaredbeck) * 1 bug fix: * Fixed handling of kwsplat args. === 2.1.3 / 2014-09-26 * 1 bug fix: * Fixed handling of kwargs. (joenas) === 2.1.2 / 2014-08-28 * 1 bug fix: * Fixed readme to point out that deep_clone may be needed. (heathd) === 2.1.1 / 2014-06-09 * 1 bug fix: * Moved Regexp::CODES out of guard on ::ENC_NONE. (presidentbeef) === 2.1.0 / 2014-04-23 * 4 minor enhancements: * Don't indent defn body extra if it has a top-level rescue. * Don't indent defn body until fully processed. * Don't use simple rescue form if resbody is a return (statement keyword). (eyberg) * Remove superfluous begin/end for top-level defn rescue. === 2.0.8 / 2014-03-24 * 1 bug fix: * 2.0/2.1: Fixed support for **kwsplat. (troessner) === 2.0.7 / 2013-12-13 * 4 minor enhancements: * Add != to list of binary operators. (camertron) *le sigh* * Clean out cruft from process_masgn that I can't reproduce anymore. * Extend process_args to deal with masgn (eg: a.b { |(c, d)| ... }). * Extend process_masgn to deal with both sexps and var lists. * 1 bug fix: * Ensure proper parens on rescue subexpressions. (Bocete) === 2.0.6 / 2013-06-20 * 2 bug fixes: * Fixed bug with complex rescue but short enough to trigger 1-liner. (Confusion) * Fixed multiple expressions inside sclass === 2.0.5 / 2013-04-25 * 2 bug fixes: * Fixed attrasgn w/ multiple keys: a[x, y] = z. (derula) * Fixed error w/ attr_* detection when more than 1 ivar/iasgn exist in body. === 2.0.4 / 2013-03-28 * 1 bug fix: * Fixed attr_* generators in cases where the body isn't idiomatic. (robertfeldt) === 2.0.3 / 2013-02-07 * 2 minor enhancements: * 1.9: Added support for ! call to go back to (not ...). * 2nd and 3rd order testing now uses RubyPraser.for_current_ruby for maximal carnage. * 1 bug fix: * On failure (eg ruby 2.0), fall back to compound RubyParser instance for 2nd & 3rd order testing === 2.0.2 / 2013-01-16 * 1 minor enhancement: * Updated to ruby_parser 3.1 and up === 2.0.1 / 2012-11-02 * 1 bug fix: * Fixed dependency on alpha ruby_parser. *sigh* === 2.0.0 / 2012-11-02 * 1 minor enhancement: * Only do phase 1 testing if $SIMPLE=1. * 1 bug fix: * Fixed block args processing for RP 3.0 sexp changes === 2.0.0.b1 / 2012-07-27 * 4 major enhancements: * Made it work without arglist in call. * Made it work without scope/block in class/module/defn/defs. * Removed block from resbody * Removed block from when node * 4 minor enhancements: * Added debug task to help isolate an error * Empty hash is now a proper {} * Refactored and added finish method. * Switched to new Ruby18Parser to avoid deprecation warnings * 4 bug fixes: * Fixed call with empty hash arg. (neilconway) * OMG WTF... removed long decrepit ParseTree dependency * Removed isolate/rake require to reduce minimum bootstrap to hoe + rake + rake install_plugins (*2) * Skip 1.9 tests for now. === 1.3.1 / 2011-09-22 * 1 minor enhancement: * Added parenthesize to add parens in certain contexts. * 10 bug fixes: * Add newline to 'do nothing' comment in a block... seems contrived. (andreacampi) * Binary operations not work properly with some complex statements. (smorss) * Fixed if statements with no body (smorss) * Fixed logic for call with hash args in various locations (smorss) * Fixed match3 on an assignment. (smorss) * Fixed multiple nested rescue/ensure exprs (larsch) * Fixed process_alias to parenthesize (smorss) * Fixed process_and to parenthenize only when it makes sense. * Fixed rescue with 2+ statements in resbody (smorss) * Regexps with options other than /o were not showing flags. (smorss) === 1.3.0 / 2011-09-01 * 1 minor enhancement: * output comments for class and method definitions. (pythonic) === 1.2.5 / 2010-09-01 * 4 minor enhancements: * Added braces to hash args surrounded if in a binary method call. * Added rewrite_resbody to double check structure and freak if necessary. * Added stress task * rewrite_rescue now detects rescue with multiple arguments. * 2 bug fixes: * Fixed dstr/dregex/d* roundtripping problem * Fixed up call arg processing to be more correct and to work with the new sexp form === 1.2.4 / 2009-08-14 * 2 bug fixes: * Fixed all doco to use ruby_praser * Fixed bin/r2r_show to use ruby_parser. oops === 1.2.3 / 2009-06-23 * 4 minor enhancements: * Overhauled 4-generation tests to use RubyParser. Much cleaner * Removed last of ParseTree. Fully switched to RubyParser. * Switched to minitest * Updated Rakefile to new hoe capabilities === 1.2.2 / 2009-01-20 * 3 minor enhancements: * Added -s to display sexp before printing r2r * Added a bunch of backslash and masgn tests. * Refactored tests. * 4 bug fixes: * Fixed iters to deal with empty bodies. * Fixed process_call for a number of cases incl [], []=, and args processing. * Fixed process_hash to always generate braces if in arglist. * Switched process_alias to producing alias again, needed for globals. === 1.2.1 / 2008-11-04 * 1 bug fix: * Don't freak out and die if passed a c function defn. stupid rails. === 1.2.0 / 2008-10-22 * 2 minor enhancements: * Removed all PT dependent code to PT project (see parse_tree_extensions.rb). * Revamped. Got working with new unified ruby output. Much much cleaner. === 1.1.9 / 2008-06-09 * 5 minor enhancements: * Added more defensive programming in the tests to make it work with 1.9 and rubinius better. * Converted r2r_show to more plain parse style, no more discover_new_classes. * Made Proc#to_sexp and #to_ruby more resiliant. * Started to work on fallback to ruby_parser code. Should prolly do flog first. * Updated rakefile and readme format for hoe. Much cleaner! * 6 bug fixes: * Added 1.9 fixes. * Added code to tests to isolate rubyinline builds. * Fixed miniunit-deprecated assertions * Fixes for const2/3, esp in class names * Renamed ProcStoreTmp#name to #new_name. dur. * Skip proc tests in 1.9 since they require ParseTree. === 1.1.8 / 2007-08-21 * 6 minor enhancements: * Added super awesome .autotest file. YAY! * Removed nil.method_missing... too many ppl bitching about it. * Renamed RubyToRuby (the class name) to Ruby2Ruby. * Restructured self-translation tests so they were friendlier when dying. * Strings are now always one line long only. * Fully in sync with ParseTree and ruby_parser. * 2 bug fixes: * Fixed a number of issues/bugs discovered via ruby_parser. * Cleaned out some dead code and hacks we don't need anymore. === 1.1.7 / 2007-08-21 * 2 major enhancements: * Switched to ParseTree's UnifiedRuby... much much cleaner now! * Made test_ruby2ruby MUCH more rigorous with circular testing. * 5 minor enhancements: * Add r2r_show command like parse_tree_show. * Add parens for :block nodes as appropriate. May be overzealous. * Make SexpAny work with #==. * Removed calls to processor_stack / caller in favor of self.context. * Some style differences, eschew rescue. * 6 bug fixes: * Fix R2R bug with masgn/argscat. * Fixed a bug with new resbody unification. * Fixes for changes to pt_testcase. * Fixes the rest of the tests under strict sexp checking. * Fixed some circular bugs, mostly by hacking them out, wrt operator precidence. * Fixed trinary operator. === 1.1.6 / 2007-06-05 * 2 minor enhancements: * Extended tests for dstr/dsym/drgx to test against embedded slashes and quotes. * Updated for dasgn_curr changes to PT. * 2 bug fixes: * Fixed a bug with begin/rescue/ensure. * Fixed argscat and blockpass bug. blah(42, *args, &block) handled. === 1.1.5 / 2007-02-13 * 3 minor enhancements: * Can now heckle ActiveRecord::Base in full. * Cleaned up 1-liner generating code. * Made clean/simple rescues 1-liners. * 7 bug fixes: * Finally got the rest of block_pass working. * Fixed block_pass on procs in iters. UGH! * Fixed attrasgn in masgn. * Fixed splat in masgn. * Fixed unary/prefix methods. * Fixed attrasgn for []= where there were multiple args inside []. * Fixed a couple resbody bugs. === 1.1.4 / 2007-01-15 * 4 minor enhancements: * Added some extra rewriting code and tests for various bmethods. Ugh. * Added support for splatted block args. * Refactored class/module and dsym/dstr. * Short if/unless statements are now post-conditional expressions. * 4 bug fixes: * Finally fixed eric's nebulous proc code-in-goalposts bug. * Fixed dasgn_curr so block's dasgn vars decl goes away (bug 7420). * Fixed dmethod. I think the tests were bogus before. * Fixed improper end in method rescues (bug 7396). === 1.1.3 / 2006-12-20 * 1 minor enhancement * Unit tests do self-translation and retesting for 3 generations! Solid. BAM! * 1 bug fixes * iasgn inside masgn was totally borked in ruby2ruby. === 1.1.2 / 2006-12-19 * 2 minor enhancements * Improved []= and [] to be more idiomatic. * Support for nested whens (from when case has no expression). * 3 bug fixes * Fixed case output when there is no case expression. * NEARLY have RubyToRuby self-cloning and passing tests again. * Minor cleanup === 1.1.1 / 2006-11-13 * 3 bug fixes * Fixed procs * Cleaned return when no return values. * Rewrote process_if. No more elsif but no more bugs. :) === 1.1.0 / 2006-10-11 * 2 major enhancements * Released separately from ZenHacks. * Major overhaul/audit from the new ParseTree test infrastructure. Very complete now.