aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/enumerable_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* Fix including/excluding flatteningGabriel Sobrinho2019-03-061-0/+1
|
* Added Array#including, Array#excluding, Enumerable#including, ↵David Heinemeier Hansson2019-03-051-3/+9
| | | | Enumerable#excluding
* Add Enumerable#index_with.Kasper Timm Hansen2018-05-211-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the app I'm working on I've wished that index_by had a buddy that would assign the hash value instead of the key multiple times. Enter index_with. Useful when building a hash from a static list of symbols. Before you'd do: ```ruby POST_ATTRIBUTES.map { |attr_name| [ attr_name, public_send(attr_name) ] }.to_h ``` But now that's a little clearer and faster with: ````ruby POST_ATTRIBUTES.index_with { |attr_name| public_send(attr_name) } ``` It's also useful when you have an enumerable that should be converted to a hash, but you don't want to muddle the code up with the overhead that it takes to create that hash. So before, that's: ```ruby WEEKDAYS.each_with_object(Hash.new) do |day, intervals| intervals[day] = [ Interval.all_day ] end ``` And now it's just: ```ruby WEEKDAYS.index_with([ Interval.all_day ]) ``` It's also nice to quickly get a hash with either nil, [], or {} as the value.
* [Active Support] `rubocop -a --only Layout/EmptyLineAfterMagicComment`Koichi ITO2017-07-111-0/+1
|
* Use frozen-string-literal in ActiveSupportKir Shatrov2017-07-091-0/+1
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-021-1/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-011-0/+1
|
* Remove checks for Enumerator#size methodEugene Kenny2017-04-251-4/+2
| | | | | | | | The Enumerator#size method was introduced in Ruby 2.0. These tests were added when Rails 4.1 was current, and Ruby 1.9.3 was still supported. Since Rails 5 only Ruby >= 2.2.2 is supported, so the checks are no longer necessary.
* "Use assert_nil if expecting nil. This will fail in minitest 6."Akira Matsuda2016-12-251-1/+1
|
* Add more rubocop rules about whitespacesRafael Mendonça França2016-10-291-10/+10
|
* Add three new rubocop rulesRafael Mendonça França2016-08-161-8/+8
| | | | | | | | Style/SpaceBeforeBlockBraces Style/SpaceInsideBlockBraces Style/SpaceInsideHashLiteralBraces Fix all violations in the repository.
* applies new string literal convention in activesupport/testXavier Noria2016-08-061-8/+8
| | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* Fix initial value effects for sum along to ruby 2.4Kenta Murata2016-04-301-0/+78
| | | | Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* Ruby 2.4: compat with new Array#sumJeremy Daer2016-04-181-3/+21
| | | | | | | | | | | | | | | | | | | | | Ruby 2.4 introduces `Array#sum`, but it only supports numeric elements, breaking our `Enumerable#sum` which supports arbitrary `Object#+`. To fix, override `Array#sum` with our compatible implementation. Native Ruby 2.4: %w[ a b ].sum # => TypeError: String can't be coerced into Fixnum With `Enumerable#sum` shim: %w[ a b ].sum # => 'ab' We tried shimming the fast path and falling back to the compatible path if it fails, but that ends up slower even in simple causes due to the cost of exception handling. Our only choice is to override the native `Array#sum` with our `Enumerable#sum`.
* Allow Enumerable#pluck to take a splat.Kevin Deisz2015-05-291-0/+9
| | | | | | This allows easier integration with ActiveRecord, such that AR#pluck will now use Enumerable#pluck if the relation is loaded, without needing to hit the database.
* Add Enumerable#pluck.Kevin Deisz2015-05-281-0/+5
| | | | Allows fetching the same values from arrays as from ActiveRecord associations.
* Use include? instead of in? for Enumerable#without.Juanito Fatas2015-03-021-1/+0
| | | | [egilburg]
* Include object inclusion for enumerable test.Juanito Fatas2015-03-021-0/+1
|
* Add Enumerable#withoutTodd Bealmear2015-03-011-0/+7
|
* Pass symbol as an argument instead of a blockErik Michaels-Ober2014-11-291-2/+2
|
* Return sized enumerator from Enumerable#index_byMarc-Andre Lafortune2014-02-051-0/+4
|
* Remove obsolete test (builtin group_by is now used)Marc-Andre Lafortune2014-02-051-20/+0
|
* Remove obsolete line (was needed for Ruby 1.8.7 support)Marc-Andre Lafortune2014-02-051-1/+0
|
* Further simplify enumerable group_by testCarlos Antonio da Silva2013-04-041-3/+1
|
* Replaced inject with mapAnupam Choudhury2013-04-041-2/+2
|
* Removed unused comma after loop variableAnupam Choudhury2013-04-041-1/+1
|
* Fix Range#sum optimized versionAlexey Vakhov2012-05-251-0/+5
| | | | | | | | | | | | | | | | | | | | | | At 1bd4d1c67459a91415ee73a8f55d2309c0d62a87 was added Range#sum optimized version for arithmetic progressions. This improvment injected a defect with not integer range boundaries. The defect was fixed by e0adfa82c05f9c975005f102b4bcaebfcd17d241. The second commit really disabled optimization at all because in Ruby integer-valued numbers are instances of Fixnum and Bignum classes. We should #use is_a? (#kind_of?) method instead #instance_of? to check if value is numerical: 1.class # => Fixnum 1.instance_of?(Integer) # => false 1.is_a?(Integer) # => true -100_000_000_000.class # => Bignum -100_000_000_000.instance_of?(Integer) # => false -100_000_000_000.is_a?(Integer) # => true Moreover original implementation of Range#sum has a defect with reverse range boundaries. If the first boundary is less than the second range is empty. Current commit fixes and tests this case too.
* use AS::TestCase as the base classAaron Patterson2012-01-051-1/+1
|
* Revert "Added Enumerable#pluck to wrap the common pattern of ↵Aaron Patterson2011-12-221-7/+0
| | | | | | | | | | | | collect(&:method) *DHH*" This reverts commit 4d20de8a50d889a09e6f5642984775fe796ca943. Conflicts: activesupport/CHANGELOG.md activesupport/lib/active_support/core_ext/enumerable.rb activesupport/test/core_ext/enumerable_test.rb
* remove Enumerable#each_with_object from core_ext as it is present in ruby 1.9lest2011-12-211-10/+1
|
* Added Enumerable#pluck to wrap the common pattern of collect(&:method) *DHH*David Heinemeier Hansson2011-12-021-1/+8
|
* Insure that Enumerable#index_by, group_by, ... return EnumeratorsMarc-Andre Lafortune2011-07-231-1/+12
|
* Make Enumerable#many? iterate only over what is necessaryMarc-Andre Lafortune2011-07-231-0/+7
|
* Make Enumerable#many? not rely on #sizeMarc-Andre Lafortune2011-07-231-1/+1
|
* Test using generic Enumerables instead of arrays.Marc-Andre Lafortune2011-07-231-24/+38
|
* Make tests more preciseMarc-Andre Lafortune2011-07-231-14/+14
|
* Deletes trailing whitespaces (over text files only find * -type f -exec sed ↵Santiago Pastorino2010-08-141-1/+1
| | | | 's/[ \t]*$//' -i {} \;)
* Add Enumerable#exclude? to bring parity to Enumerable#include? and avoid if ↵David Heinemeier Hansson2009-12-141-0/+5
| | | | !x.include?/else calls [DHH]
* Enumerable#none? is not needed for Ruby >= 1.8.7Xavier Noria2009-11-091-11/+0
|
* Symbol#to_proc is not needed for Ruby >= 1.8.7Xavier Noria2009-11-091-1/+0
|
* Improving test coverage for Range#sum [#2489]José Valim2009-08-091-1/+1
| | | | Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Remove unnecessary &block from Range#sum and add tests for (num..float).sumPratik Naik2009-08-091-0/+1
|
* Make enumerable test run stand alonePratik Naik2009-08-091-0/+1
|
* Optimize Range#sum only for integers [#2489]José Valim2009-08-091-0/+1
|
* Optimize Range#sum to use arithmetic progression when a block is not given ↵José Valim2009-08-091-0/+2
| | | | | | [#2489]. Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Enumerable#sum now works will all enumerables, even if they don't respond to ↵Marc-Andre Lafortune2009-08-081-0/+4
| | | | | | | | :size [#2489 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Explicit test dependenciesJeremy Kemper2009-03-281-0/+2
|
* Enumerable#none? conforms to Ruby 1.8.7 behaviorJeremy Kemper2008-11-191-1/+2
|
* Added Enumerable#none? to check that none of the elements match the block ↵Damian Janowski2008-11-191-0/+10
| | | | | | [#1408 state:committed] Signed-off-by: David Heinemeier Hansson <david@loudthinking.com>
* Add each_with_object from 1.9 for a more convenient alternative to inject.Adam Keys2008-09-031-0/+5
| | | | | Signed-off-by: Michael Koziarski <michael@koziarski.com> [#962 state:committed]