We should strive to implement the 1.8.7 improvements
----------------------------------------------------

                 Key: JRUBY-2398
                 URL: http://jira.codehaus.org/browse/JRUBY-2398
             Project: JRuby
          Issue Type: Improvement
          Components: Core Classes/Modules
            Reporter: Ola Bini
            Priority: Minor


There is some very nice stuff in Ruby 1.8.7. We should try to implement most of 
it as quickly as possible. Among the things that I felt was extra nice are 
these (most of them concern Enumerator, but there are some other things too):


        * object.c (rb_obj_tap): new method Object#tap; backported from
          1.9. bug#19008

        * numeric.c (int_odd_p): new method Integer#odd?.
          (int_even_p): new method Integer#even?.
          (int_pred): new method Integer#pred.
          (fix_odd_p): new method Fixnum#odd?.
          (fix_even_p): new method Fixnum#even?.

        * enumerator.c, inits.c (rb_call_inits), ruby.h, intern.h,
          ext/enumerator, common.mk (OBJS, enumerator.$(OBJEXT)): Make the
          enumerator module built-in.

        * enumerator.c: New method: Enumerable::Enumerator#with_index.

        * enum.c (enum_each_with_index): Enumerable#each_with_index now
          returns an enumerator instead of raising an exception if no
          block is given.  Enumerable#enum_with_index, formerly defined in
          the enumerator module, is kept as an alias to each_with_index
          for backward compatibility.

        * array.c (rb_ary_each, rb_ary_each_index, rb_ary_reverse_each,
          rb_ary_reject, rb_ary_reject_bang): Array#each, #each_index,
          #reverse_each, #reject, #reject! and #delete_if return an
          enumerator if no block is given; backported from 1.9.

        * enumerator.c (rb_eStopIteration), eval.c (rb_f_loop), ruby.h:
          Add a new exception class StopIteration, which breaks Kernel#loop
          iteration when raised; backported from 1.9.

        * enum.c (enum_first, enum_group_by): New methods:
          Enumerable#first and #group_by; backported from 1.9.

        * range.c (range_each, range_step): Return an enumerator if no
          block is given; backported from 1.9.

        * enum.c (enum_count, enum_find_index): New methods:
          Enumerable#count and #find_index; backported from 1.9.

        * array.c (rb_ary_collect_bang, rb_ary_select): Return an
          enumerator if no block is given; backported from 1.9.

        * dir.c (dir_each, dir_foreach): Ditto.

        * enum.c (enum_partition, enum_sort_by): Ditto.

        * gc.c (os_each_obj): Ditto.

        * hash.c (rb_hash_delete_if, rb_hash_reject_bang, rb_hash_select,
          rb_hash_each_value, rb_hash_each_key, rb_hash_each_pair,
          env_each_key, env_each_value, env_each, env_each_pair,
          env_reject_bang, env_delete_if, env_select): Ditto.

        * numeric.c (num_step, int_upto, int_downto, int_dotimes): Ditto.

        * enum.c (enum_find, enum_reject): Return an enumerator if no
          block is given; backported from 1.9.

        * io.c (rb_io_each_line, rb_io_each_byte, rb_io_s_foreach,
          argf_each_line, argf_each_byte): Ditto.

        * string.c (str_gsub): Ditto.

        * enum.c: New methods: Enumerable#one?, #none?, #minmax, #min_by,
          #max_by, #minmax_by and #cycle; backported from 1.9.

        * enum.c (enum_find_index): Add support for find_index(obj);
          [ruby-dev:34313]; backported from 1.9.

        * enum.c (enum_inject): Add support for Enumerable#inject(:binop);
          backported from 1.9.

        * enum.c: Alias Enumerable#reject to #inject; backported from 1.9.

        * enum.c New methods: Enumerable#take, #take_while, #drop and
          #drop_while; backported from 1.9.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to