Feature #16928
openArray#include_all? & Array#include_any?
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
Updated by jeremyevans0 (Jeremy Evans) over 4 years ago
- Tracker changed from Bug to Feature
- Backport deleted (
2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN)
Updated by marcandre (Marc-Andre Lafortune) over 4 years 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, ...
Updated by marcandre (Marc-Andre Lafortune) over 4 years ago
- Related to Feature #15198: Array#intersect? added
Updated by Dan0042 (Daniel DeLorme) over 4 years ago
The first case (#include_all?) has also been requested before: #16039
Updated by AndyMaleh (Andy Maleh) over 4 years 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!