Project

General

Profile

Feature #16928

Array#include_all? & Array#include_any?

Added by AndyMaleh (Andy Maleh) about 1 month ago. Updated about 1 month ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:98605]

Description

Hi,

The Ruby Array class is currently missing #include_all? and #include_any? to check if current Array includes all elements of another Array or any.

I implemented in this Ruby Gem:
https://github.com/AndyObtiva/array_include_methods

I would like to propose merging into Ruby since these methods are very handy and are more readable than coding by hand manually.

Andy Maleh


Files

array_include_methods.zip (65.8 KB) array_include_methods.zip AndyMaleh (Andy Maleh), 06/01/2020 03:39 PM

Related issues

Related to Ruby master - Feature #15198: Array#intersect?OpenActions
#1

Updated by jeremyevans0 (Jeremy Evans) about 1 month ago

  • Backport deleted (2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN)
  • Tracker changed from Bug to Feature

Updated by marcandre (Marc-Andre Lafortune) about 1 month ago

FYI, you can already do these with sets:

Set[1, 2] == Set[2, 1] # => true
Set[1,2].intersect?(Set[2]) # => true

The second case has been requested a few times already: #15198, ...

#3

Updated by marcandre (Marc-Andre Lafortune) about 1 month ago

Updated by Dan0042 (Daniel DeLorme) about 1 month ago

The first case (#include_all?) has also been requested before: #16039

Updated by AndyMaleh (Andy Maleh) about 1 month ago

I am glad others have reported too. This confirms what I said about this being "very handy".

In response to Marc-Andre Lafortune saying "FYI, you can already do these with sets:"

Please note what I said about being: "more readable than coding by hand manually." I am aware of the Set approach and have used on projects before. Still, Set is not part of the Array API, so it is considered coding by hand manually even if not from scratch. Petty details aside, I like to be a happy Ruby programmer and the syntax you provided does not make me happy.

By the way, thanks for sending me a message on GitHub alerting me to a hole in the implementation. I am patching it right now.

Please take this issue and GitHub project as merely an idea suggestion though as I am not a language programmer. As such, there are likely many bugs/holes/performance-issues with my simpleton implementation.

I was not expecting you to take my implementation as is, yet simply as an idea to implement with your superior language programming skills while making it feature-complete (e.g. support Enumerable). Still, if you need my help with anything, I am available and do have some time to dedicate.

Cheers and thanks for continuing to make Ruby a wonderful language!

Also available in: Atom PDF