86 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto afca99a40b Remove implicit conversion using to_int method.
The ISO standard does not include implicit type conversion using
`to_int`. This implicit conversion often causes vulnerability.
There will be no more attacks like #4120.

In addition, we have added internal convenience method `__to_int` which
does type check and conversion (from floats).
2018-11-19 11:28:51 +09:00
Tomoyuki Sahara 91444c4747 replace quicksort with mergesort. 2018-10-18 13:07:47 +09:00
Yukihiro "Matz" Matsumoto 19d3bb2d90 Make #to_h to take a block; [ruby-core:89088] 2018-09-20 13:47:29 +09:00
ksss e683c95e90 Refactoring for Enumerable#each_with_object
`each_with_object` arity should be 1
2018-03-27 23:09:10 +09:00
ksss b1c8fad94a Should raise TypeError instead of NoMethodError 2018-03-27 10:52:32 +09:00
ksss 5a7ce01f12 Support block yielding for Enumerable#zip 2018-03-27 10:51:59 +09:00
Yukihiro "Matz" Matsumoto 1a8483f17e __sort_sub__ is a method defined in Array; fix #3970
Reorganize `__sort_sub__` arguments.
2018-03-16 14:49:51 +09:00
Yukihiro "Matz" Matsumoto e4a9b4a3ad `Enumerable#{one?,none?,all?,any?} to take pattern argument [Ruby2.5] 2017-12-25 23:43:43 +09:00
Yukihiro "Matz" Matsumoto db8265f428 Add Comparable#uniq; CRuby2.4 2017-10-17 12:46:51 +09:00
Yukihiro "Matz" Matsumoto 7b8d784040 Reimplement sort method to reduce array copying. 2017-07-25 14:42:38 +09:00
Yukihiro "Matz" Matsumoto 6a992a2579 Merge pull request #3577 from okkez/fix-return-value-of-each-slice
Change return value of Enumerable#each_slice
2017-04-03 18:04:57 +09:00
Kenji Okimoto cff54ab2f3 Change return value of Enumerable#each_slice
More compatibility to CRuby.
2017-04-03 16:46:47 +09:00
Kenji Okimoto 4975aa4c1c Change return value of Enumberable#each_cons
More compatibility to CRuby.
2017-04-03 16:42:53 +09:00
ksss 1bf565ea04 Argument more strictly 2016-11-25 22:25:48 +09:00
ksss c28a963bf4 Like a Enumerable#take 2016-11-25 22:20:33 +09:00
ksss 5134734541 Shouldn't call each method if size is 0 2016-11-24 10:35:15 +09:00
ksss 9e2faec8e4 Support object does'n have < method 2016-11-24 10:34:14 +09:00
ksss 7685783af4 Add regression test for Enumerable#cycle 2016-11-11 16:53:42 +09:00
ksss 126d55480d Reimplement Enumerable#cycle
Fix pattern of infinite loop
And support all specs in https://github.com/ruby/spec/blob/27960d06e0ce92c37f074450f0eab4b0519b118c/core/enumerable/cycle_spec.rb without Enumerable#size
2016-11-11 16:53:42 +09:00
Yukihiro "Matz" Matsumoto 0e03a7f2a3 mruby-enum-ext: refine minmax 2016-03-30 01:12:18 +09:00
Seba Gamboa 25c8e95365 Revert "Mark core gems with mrbgem tag"
This reverts commit 5cdcce8dbd.
2015-10-21 14:31:13 -03:00
Seba Gamboa 13b552538a Remove obvious warnings from docs 2015-10-20 12:48:31 -03:00
Seba Gamboa 5cdcce8dbd Mark core gems with mrbgem tag 2015-10-20 12:16:47 -03:00
Yukihiro "Matz" Matsumoto 0aa83c503d Enumerable#each_{cons,slice} to return enumerators 2015-09-27 00:04:34 +09:00
INOUE Yasuyuki 0d055559f1 Use #nil? instead of == nil. 2015-08-22 19:57:11 +09:00
Jun Hiroe 4e4929bc72 Rename extended xxxx class or module to xxxx class or module extension 2015-06-28 11:18:52 +09:00
Jun Hiroe c69d1201e1 Fix typo; Replace extensional with extended 2015-06-28 00:05:58 +09:00
Jun Hiroe 3a21c9b6d7 Avoid block_given? in mrbgem:enum.rb to reduce method calls 2014-12-27 18:17:29 +09:00
Yukihiro "Matz" Matsumoto cbbed40295 add nil#to_h; ref #2348 2014-06-05 13:20:17 +09:00
Yukihiro "Matz" Matsumoto 13728e203e add Enumerable#to_h; ref #2348 2014-06-04 23:37:13 +09:00
Nobuyoshi Nakada ab67c57f65 remove trailing spaces 2014-04-30 09:50:14 +09:00
Yukihiro "Matz" Matsumoto 950fe963ac should have passed args to to_enum 2014-04-06 20:31:37 +09:00
Jun Hiroe ca1bc5290e Add to_enum unless block 2014-03-28 18:54:25 +09:00
Yukihiro "Matz" Matsumoto fc51781402 Enumerable#cycle to return enumerator 2014-03-27 14:34:21 +09:00
Yukihiro "Matz" Matsumoto 69b4842a03 call to_a at the top of Enumerabl#zip; ref #1961 2014-03-27 14:25:33 +09:00
Jun Hiroe c2ad8098a5 Support multiple values in Enumerable#zip 2014-03-27 14:09:29 +09:00
Jun Hiroe 68695d174c Add Enumerable#zip 2014-03-27 14:09:29 +09:00
Yukihiro "Matz" Matsumoto b042b951ce Enumerable#find_index to support multiple values 2014-03-25 19:07:32 +09:00
Jun Hiroe 767ca3f76e Enumerable#find_index 2014-03-25 16:14:19 +09:00
Yukihiro "Matz" Matsumoto 896dc002ca use to_int to integer duck-type check 2014-03-25 12:29:29 +09:00
Yukihiro "Matz" Matsumoto d7d54b6e69 Fix Enumerable#cycle; ref #1933
* add multi value support
* `each` method may not rewind the sequence so that `cycle` should save elements
2014-03-24 23:58:21 +09:00
Yukihiro "Matz" Matsumoto 915b158e89 Merge pull request #1933 from suzukaze/add-enum.cycle
Add Enumerable#cycle
2014-03-24 23:49:01 +09:00
Yukihiro "Matz" Matsumoto aa5920aaae Enumerable#reverse_each should not rely on mruby-array-ext gem 2014-03-24 23:44:23 +09:00
Jun Hiroe 381f126f1b Add Enumerable#cycle 2014-03-24 20:24:23 +09:00
Yukihiro "Matz" Matsumoto c326ab877e improve Enumerable#reverse_each to be efficient 2014-03-24 18:39:06 +09:00
Jun Hiroe 70bbe9a894 Add Enumerable#reverse_each 2014-03-24 18:03:37 +09:00
Yukihiro "Matz" Matsumoto 53d6df3fdb fix multiple value handling; ref #1931 2014-03-24 17:31:43 +09:00
Jun Hiroe 7e41e2ed0e Enumerable#each_with_object 2014-03-24 16:26:23 +09:00
Yukihiro "Matz" Matsumoto 75eed54bba move conditional out of loop 2014-03-24 00:24:02 +09:00
Yukihiro "Matz" Matsumoto d05635e252 Enumerable#one? to prune iteration when count > 1; ref #1926 2014-03-24 00:13:37 +09:00