= Backports --- History == Version 3.6.0 - February 14th, 2014 * Additional features of 2.1.0 * Bignum#bit_length * Fixnum#bit_length * Module#include (now public) == Version 3.5.0 - February 3rd, 2014 * Additional features of 2.0.0 * Range#size == Version 3.4.0 - December 29th, 2013 * Additional features of 2.1.0 * Array#to_h, Enumerable#to_h == Version 3.3.0 - April 3rd, 2013 * Moved `Proc#yield` & `Hash#key` from 1.8.7 to 1.9.1 == Version 3.2.0 - April 2nd, 2013 * Moved `Dir.mktmpdir` to the stdlib 'tmpdir' for Ruby 1.8.7 * Removed `returning` as it is no longer part of Rails. == Version 3.1.0 - March 5th, 2013 * Backports can now be loaded separately! * Small tweaks and fixes for many methods to pass more RubySpecs == Version 3.0.0 - February 24th, 2013 * Features of 2.0.0 are now required when requiring 'backports'. * Additional features of 2.0.0 * Struct#to_h, NilClass#to_h, Hash#to_h * Hash#default_proc = nil * OpenStruct lib * 1.8.7's Enumerator#with_index (it wasn't in the 1.8.7 NEWS file...) == Version 2.8.0 - February 3rd, 2013 * Added some features of 2.0.0 (must be required explicitly until official release): * Array#bsearch * Range#bsearch == Version 2.7.0 - January 14th, 2013 * Added some features of 2.0.0 (must be required explicitly until official release): * Enumerable#lazy * Enumerator::Lazy == Version 2.6.0 - May 29th, 2012 * Removed Enumerable#join == Version 2.5.0 - March 25th, 2012 * Added some features of 1.9.3: * IO::NULL * IO#advise * String#byteslice * String#prepend == Version 2.4.0 - March 24th, 2012 * Add backporting for libraries * Bring libraries up to date: * Matrix * Prime * Set * Added some features of 1.9.3: * IO.write, IO.binwrite * Add forcing backports (must be required explicitly): * Hash#select (returns a Hash instead of an Array) * Enumerable / Array#map (returns an enumerator when called without a block) * String#length, size (for UTF-8 support) == Version 2.3.0 - May 13th, 2011 * Added Enumerator::Yielder#<< == Version 2.2.0 - May 13th, 2011 * Ruby 1.8.8 was officially cancelled; code was moved to Ruby 1.9.1 and README updated. * "".ord now raises an error. == Version 2.1.0 - April 16th, 2011 * Proc#curry, #lambda (thanks Konstantine Haase) == Version 2.0.0 - December 5th, 2010 Change of major version because of two small changes that are not quite compatible and because the minor version was getting quite high! * Remove attempt at faking the new method missing. Unless you used `respond_to_missing` *and* `method(:some_method_handled_with_method_missing)`, you won't see a difference, except better performance (see issue #32) and this fixes some errors (see issue #34) * Change behavior of array.flatten(0) to match Ruby 1.9 (i.e. return a dup of array, instead of array itself) == Version 1.18.0 - June 19th, 2010 * Added some features of 1.9.1: * Math#log2, Math#log with base * Also fixed Enumerator#each in 1.8.6. == Version 1.17.0 - May 17th, 2010 * Added some features of 1.9.2: * Array#repeated_combination, #repeated_permutation == Version 1.16.2 - April 11th, 2010 * Added some features of 1.9.2: * Array#uniq, #uniq! (with block) * Array#product (with block) * Dir.home * Hash#keep_if, select! * Random (new class) == Version 1.15.0 - March 23rd, 2010 * Added a features of 1.9.2: * Object#singleton_class == Version 1.14.0 - March 3rd, 2010 * Added some features of 1.9.2: * Array#rotate, rotate! * Array#keep_if, select! * Array#sort_by! * Enumerable#join * Enumerable#slice_before * Float::INFINITY, NAN * MatchData#== == Version 1.13.0 - January 20th, 2010 * Missing for 1.8.7 were * Array#permutation * Hash#hash (was only inherited) * Hash#eql? (was only inherited) == Version 1.12.0 - December 4th, 2009 * Finer grain includes (see README) require "backports/1.9" # requires all ruby backports require "backports/1.9.1" # requires all ruby backports up to 1.9.1 (but not 1.9.2) * Backported all builtin methods of 1.8.8 (most of which where moved from the 1.9 backports) * Refreshed README == Version 1.11.0 - November 4th, 2009 * Added Enumerable#flat_map / collect_concat (Ruby 1.9) * Added Object#public_send (Ruby 1.9) * Added Object#public_method (Ruby 1.9) * bug fixes == Version 1.10.0 - September 29th, 2009 * Added Enumerable#chunk (Ruby 1.9) * Added Kernel#respond_to_missing? (Ruby 1.9) * Completed Process.exec (Ruby 1.8.7) == Version 1.9.0 - September 4th, 2009 * In Ruby 1.9, most class methods of File accept filenames as String, or convertible via #to_str or #to_path. File#to_path is also an alias to File#path. These have been backported. * File.binread (actually IO.binread) * BasicObject available via "require 'backports/basic_object" == Version 1.8.4 - September 3rd, 2009 Added Dir.mktmpdir for older version of 1.8.6 == Version 1.8.1 - September 1st, 2009 Added the alias String#lines (Ruby 1.8.7) == Version 1.8 - August 30, 2009 Backports can be required selectively: * backports/1.8.7 * backports/1.9 (which include 1.8.7) * rails == Version 1.8 - August 30, 2009 Backports can be required selectively: * backports/1.8.7 * backports/1.9 (which include 1.8.7) * rails == Version 1.7.1 - August 20, 2009 Enumerable#take and Enumerable#first(n) are now returning as soon as possible. Previously, #each was yielding one element too many. See redmine issue #1554. == Version 1.7 - May 27, 2009 Porting all 1.8.7 features to rubinius was quite enlightening (http://blog.marc-andre.ca/2009/05/schizo-ruby-puzzle.html ). Many improvements were made to be consistent with MRI, e.g. converting arguments using to_int if needed, etc... The changes are now reflected in 'backports'. Some IO and ARGF methods were missing and are now complete. == Version 1.6.6 - April 30, 2009 Important bug fix. String#gsub is left alone until I find a good way to modify it. == Version 1.6 - April 29, 2009 Completed backport to 1.8.7. * Array * extract_options! * Binding * +eval+ * Dir * +each+, +foreach+ * Enumerator * +new+ * +with_object+ * +next+, +rewind+ * Hash * Optional block for delete_if, each, each_key, each_pair, each_value, reject!, select (and ENV) * Integer * moved stuff out of Fixnum * Optional block for +downto+, +times+, +upto+ * IO * Optional block for +each+, +each_line+, +each_byte+, +foreach+ (and ARGF) * Kernel * +loop+, +StopIteration+ * +__method__+, +__callee__+ * Method * +name+, +owner+, +receiver+ * Module * +class_exec+, +module_exec+ * Numeric * +step+ * Object * +define_singleton_method+ * +instance_exec+ * ObjectSpace * +each_object+ * Range * Optional block for +each+, +step+ * Regexp * +union+ * String * +try_convert+ * ascii_only? * +bytesize+ * +chr+ * +clear+ * +codepoints+, +each_codepoint+ * +stringify_keys+, +stringify_keys!+ * +each+, +each_line+, +each_byte+ * +gsub+ * +upto+ * Struct * +each+, +each_pair+ * Symbol * <=>, +casecmp+ * +capitalize+, +downcase+, +next+, +succ+, +swapcase+, +upcase+ * =~, [], empty?, length, match, size * UnboundMethod * +name+, +owner+ == Version 1.5 - April 24, 2009 * Array (completed) * +combination+ * +try_convert+ * Optional block for collect!, :map!, :each, :each_index, :reject, :reject!, :delete_if * +pop+, +shift+ * +product+ * Fixnum (completed) * +div+, +fdiv+ * +succ+ * +magnitude+ * Enumerable (completed) * +each_with_object+ * +inject+ * +max_by+, +min_by+, +minmax+, +minmax_by+ * +reduce+ * +to_a+ == Version 1.4 - April 21, 2009 * String * +rpartition+ * Proc * +yield+ == Version 1.3 - April 17, 2009 * Enumerable * none? * Array * +sample+, +shuffle+, +shuffle!+ * String * +each_char+, +chars+ * +partition+ Tests and fixes for String#start_with? and String#end_with? == Version 1.2 - April 12, 2009 * Array * +reverse_each+ * +cycle+ * Enumerable * +reverse_each+ * +each_slice+, +each_cons+ * +count+ * +cycle+ * +group_by+ * Hash * default_proc= == Version 1.1 - April 11, 2009 * Array * +flatten+, flatten! * +find_index+, +index+ * Hash * +reverse_merge+, reverse_merge! == Version 1.0 - April 2nd, 2009 === Initial release.