array_include_methods 1.2.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +60 -14
- data/VERSION +1 -1
- data/array_include_methods.gemspec +9 -6
- data/lib/array_include_methods/array.rb +111 -0
- data/lib/array_include_methods.rb +5 -76
- metadata +21 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37098f6edb2efccc49b1957ed3a1fab4ba24de1513c418d6b354c55639f7c21e
|
4
|
+
data.tar.gz: 43017be01759fa4ad755f7c6eb137dc112579746c04925e7a2d27eacc068bc78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 443405d84171e9e1bbbb50542d62f7648c4291adc2b35a698b48cc7a9f821e182af43fd43e2a858c42bef31c6e805e4f6d47dfa2b06b20c81b2c480e95ed3eee
|
7
|
+
data.tar.gz: 751bed4920602a17ac928f24d1d0f9b3ccc0f1f8c5c0d75dc29df580618198cb9b8985059a76d451effbfd1d62366d2e35f839f25e25908c5590fa6b93de505f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 1.5.0
|
4
|
+
|
5
|
+
- Add RubyMotion compatibility
|
6
|
+
- Ensure Opal compatibility happens through RUBY_ENGINE instead of RUBY_PLATFORM
|
7
|
+
|
8
|
+
## 1.4.0
|
9
|
+
|
10
|
+
- `array_diff_indexes(other_array)` (alias: `array_diff_indices`)
|
11
|
+
- `array_intersection_indexes(other_array)` (alias: `array_intersection_indices`)
|
12
|
+
|
13
|
+
## 1.3.0
|
14
|
+
|
15
|
+
- [API Breaking] Separate between operations `include_any?(*array)` and `include_any?(array)` to avoid confusion (remove support for the latter as it is not necessary)
|
16
|
+
- [API Breaking] Separate between operations `include_all?(*array)` and `include_all?(array)` to avoid confusion (rename the latter to `include_array?(array)`)
|
17
|
+
- `Array#include_all?(*other_array, same_sort: true)` accepts `same_sort` option (default: `false`)
|
18
|
+
|
3
19
|
## 1.2.0
|
4
20
|
|
5
21
|
- Add `Array#array_index(array)` method to determine start array index of other array
|
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
# ArrayIncludeMethods 1.
|
1
|
+
# ArrayIncludeMethods 1.5.0 - Ruby Refinement
|
2
2
|
[](http://badge.fury.io/rb/array_include_methods)
|
3
3
|
[](https://travis-ci.com/AndyObtiva/array_include_methods)
|
4
4
|
[](https://coveralls.io/github/AndyObtiva/array_include_methods?branch=master)
|
5
5
|
|
6
|
-
`Array#include_all
|
6
|
+
`Array#include_all?`, `Array#include_any?`, `Array#include_array?`, `Array#array_index`, `Array#array_diff_indices`, and `Array#array_intersection_indices` methods missing from basic Ruby `Array` API.
|
7
7
|
|
8
8
|
## Setup
|
9
9
|
|
@@ -12,7 +12,7 @@
|
|
12
12
|
Include the following in Gemfile:
|
13
13
|
|
14
14
|
```ruby
|
15
|
-
gem 'array_include_methods', '~> 1.
|
15
|
+
gem 'array_include_methods', '~> 1.5.0'
|
16
16
|
```
|
17
17
|
|
18
18
|
Run:
|
@@ -26,7 +26,7 @@ bundle
|
|
26
26
|
Run:
|
27
27
|
|
28
28
|
```
|
29
|
-
gem install array_include_methods -v1.
|
29
|
+
gem install array_include_methods -v1.5.0
|
30
30
|
```
|
31
31
|
|
32
32
|
## Usage
|
@@ -51,10 +51,8 @@ Now, you have `#include_all?` and `#include_any?` methods on `Array` objects.
|
|
51
51
|
|
52
52
|
```ruby
|
53
53
|
[1, 2, 3, 4].include_any?(2, 4, 5) # returns true
|
54
|
-
[1, 2, 3, 4].include_any?([2, 4, 5]) # returns true
|
55
54
|
[1, 2, 3, 4].include_any?(6, 7) # returns false
|
56
|
-
[1, 2, 3, 4].include_any?(
|
57
|
-
[1, 2, 3, 4].include_any?([]) # returns true
|
55
|
+
[1, 2, 3, 4].include_any?() # returns true
|
58
56
|
[1, 2, 3, 4].include_any?(nil) # returns false
|
59
57
|
```
|
60
58
|
|
@@ -62,19 +60,27 @@ Now, you have `#include_all?` and `#include_any?` methods on `Array` objects.
|
|
62
60
|
|
63
61
|
```ruby
|
64
62
|
[1, 2, 3, 4].include_all?(2, 3) # returns true
|
65
|
-
[1, 2, 3, 4].include_all?([2, 3]) # returns true
|
66
63
|
[1, 2, 3, 4].include_all?(2, 4) # returns true
|
67
|
-
[1, 2, 3, 4].include_all?([2, 4]) # returns false (checks true array containment)
|
68
64
|
[1, 2, 3, 4].include_all?(4, 2) # returns true
|
69
|
-
[1, 2, 3, 4].include_all?(
|
65
|
+
[1, 2, 3, 4].include_all?(4, 2, same_sort: true) # returns false
|
70
66
|
[1, 2, 3, 4].include_all?(2, 4, 4) # returns true
|
71
|
-
[1, 2, 3, 4].include_all?([2, 4, 4]) # returns false (checks true array containment)
|
72
67
|
[1, 2, 3, 4].include_all?(2, 4, 5) # returns false
|
73
|
-
[1, 2, 3, 4].include_all?(
|
74
|
-
[1, 2, 3, 4].include_all?([]) # returns true
|
68
|
+
[1, 2, 3, 4].include_all?() # returns true
|
75
69
|
[1, 2, 3, 4].include_all?(nil) # returns false
|
76
70
|
```
|
77
71
|
|
72
|
+
### `Array#include_array?(other_array)`
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
[1, 2, 3, 4].include_array?([2, 3]) # returns true
|
76
|
+
[1, 2, 3, 4].include_array?([2, 4]) # returns false
|
77
|
+
[1, 2, 3, 4].include_array?([4, 2]) # returns false
|
78
|
+
[1, 2, 3, 4].include_array?([2, 4, 4]) # returns false
|
79
|
+
[1, 2, 3, 4].include_array?([2, 4, 5]) # returns false
|
80
|
+
[1, 2, 3, 4].include_array?([]) # returns true
|
81
|
+
[1, 2, 3, 4].include_array?([nil]) # returns false
|
82
|
+
```
|
83
|
+
|
78
84
|
### `Array#array_index(other_array)`
|
79
85
|
|
80
86
|
Returns first array index of `other_array` in `first_array` assuming `first_array.include_all?(other_array)` returns true
|
@@ -90,9 +96,49 @@ Returns first array index of `other_array` in `first_array` assuming `first_arra
|
|
90
96
|
[1, 2, 3, 4].array_index(nil) # returns -1
|
91
97
|
```
|
92
98
|
|
99
|
+
### `Array#array_intersection_indexes(other_array)`
|
100
|
+
(alias: `Array#array_intersection_indices(other_array)`)
|
101
|
+
|
102
|
+
Returns indexes from `self` array for which elements match elements in `other_array` assuming same sort
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
[1, 2, 3, 4].array_intersection_indexes([2, 3, 4]) # returns [1, 2, 3]
|
106
|
+
[1, 2, 3, 4].array_intersection_indexes([2, 3]) # returns [1, 2]
|
107
|
+
[1, 2, 3, 4].array_intersection_indexes([3, 4]) # returns [2, 3]
|
108
|
+
[1, 2, 3, 4].array_intersection_indexes([2, 4]) # returns [1, 3]
|
109
|
+
[1, 2, 3, 4].array_intersection_indexes([4, 2]) # returns [3]
|
110
|
+
[1, 2, 3, 4].array_intersection_indexes([2, 4, 5]) # returns [1, 3]
|
111
|
+
[1, 2, 3, 4].array_intersection_indexes([]) # returns []
|
112
|
+
[1, 2, 3, 4].array_intersection_indexes(nil) # returns []
|
113
|
+
```
|
114
|
+
|
115
|
+
### `Array#array_diff_indexes(other_array)`
|
116
|
+
(alias: `Array#array_diff_indices(other_array)`)
|
117
|
+
|
118
|
+
Returns indexes from `self` array for which elements do not match elements in `other_array` assuming same sort
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
[1, 2, 3, 4].array_diff_indexes([2, 3, 4]) # returns [0]
|
122
|
+
[1, 2, 3, 4].array_diff_indexes([2, 3]) # returns [0, 3]
|
123
|
+
[1, 2, 3, 4].array_diff_indexes([3, 4]) # returns [0, 1]
|
124
|
+
[1, 2, 3, 4].array_diff_indexes([2, 4]) # returns [0, 2]
|
125
|
+
[1, 2, 3, 4].array_diff_indexes([4, 2]) # returns [0, 1, 2]
|
126
|
+
[1, 2, 3, 4].array_diff_indexes([2, 4, 5]) # returns [0, 2]
|
127
|
+
[1, 2, 3, 4].array_diff_indexes([]) # returns [0, 1, 2, 3]
|
128
|
+
[1, 2, 3, 4].array_diff_indexes(nil) # returns [0, 1, 2, 3]
|
129
|
+
```
|
130
|
+
|
131
|
+
## JRuby Compatibility
|
132
|
+
|
133
|
+
This gem is 100% compatible with JRuby.
|
134
|
+
|
93
135
|
## Opal Compatibility
|
94
136
|
|
95
|
-
This gem degrades gracefully to monkey-patching in [Opal Ruby](https://opalrb.com) and provides a `using` method shim so consumer code does not have to change if it used gems that rely on the Ruby refinement
|
137
|
+
This gem degrades gracefully to monkey-patching in [Opal Ruby](https://opalrb.com) and provides a `using` method shim so consumer code does not have to change if it used gems that rely on the Ruby refinement.
|
138
|
+
|
139
|
+
## RubyMotion Compatibility
|
140
|
+
|
141
|
+
This gem degrades gracefully to monkey-patching in [RubyMotion](http://www.rubymotion.com/) and provides a `using` method shim so consumer code does not have to change if it used gems that rely on the Ruby refinement.
|
96
142
|
|
97
143
|
## TODO
|
98
144
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.5.0
|
@@ -2,17 +2,17 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: array_include_methods 1.
|
5
|
+
# stub: array_include_methods 1.5.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "array_include_methods".freeze
|
9
|
-
s.version = "1.
|
9
|
+
s.version = "1.5.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Andy Maleh".freeze]
|
14
|
-
s.date = "
|
15
|
-
s.description = "Array#include_all
|
14
|
+
s.date = "2022-06-11"
|
15
|
+
s.description = "Array#include_all?, Array#include_any?, Array#include_array?, Array#array_index, Array#array_diff_indices, and Array#array_intersection_indices methods missing from basic Ruby Array API. Compatible with Ruby, JRuby, Opal, and RubyMotion.".freeze
|
16
16
|
s.email = "andy.am@gmail.com".freeze
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"CHANGELOG.md",
|
@@ -25,11 +25,12 @@ Gem::Specification.new do |s|
|
|
25
25
|
"README.md",
|
26
26
|
"VERSION",
|
27
27
|
"array_include_methods.gemspec",
|
28
|
-
"lib/array_include_methods.rb"
|
28
|
+
"lib/array_include_methods.rb",
|
29
|
+
"lib/array_include_methods/array.rb"
|
29
30
|
]
|
30
31
|
s.homepage = "http://github.com/AndyObtiva/array_include_methods".freeze
|
31
32
|
s.licenses = ["MIT".freeze]
|
32
|
-
s.rubygems_version = "3.
|
33
|
+
s.rubygems_version = "3.3.3".freeze
|
33
34
|
s.summary = "Array#include_all? & Array#include_any? methods missing from basic Ruby Array API".freeze
|
34
35
|
|
35
36
|
if s.respond_to? :specification_version then
|
@@ -43,6 +44,7 @@ Gem::Specification.new do |s|
|
|
43
44
|
s.add_development_dependency(%q<coveralls>.freeze, ["= 0.8.23"])
|
44
45
|
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
|
45
46
|
s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
|
47
|
+
s.add_development_dependency(%q<puts_debuggerer>.freeze, ["> 0"])
|
46
48
|
s.add_development_dependency(%q<rake-tui>.freeze, ["> 0"])
|
47
49
|
else
|
48
50
|
s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
|
@@ -51,6 +53,7 @@ Gem::Specification.new do |s|
|
|
51
53
|
s.add_dependency(%q<coveralls>.freeze, ["= 0.8.23"])
|
52
54
|
s.add_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
|
53
55
|
s.add_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
|
56
|
+
s.add_dependency(%q<puts_debuggerer>.freeze, ["> 0"])
|
54
57
|
s.add_dependency(%q<rake-tui>.freeze, ["> 0"])
|
55
58
|
end
|
56
59
|
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
if ['opal', 'rubymotion'].include?(RUBY_ENGINE)
|
2
|
+
# Create a shim using method that does nothing since we monkey-patch in Opal earlier in `refine` method
|
3
|
+
def self.using(refinement)
|
4
|
+
# NO OP
|
5
|
+
end
|
6
|
+
|
7
|
+
module ArrayIncludeMethods
|
8
|
+
def self.refine(class_or_module, &refinement)
|
9
|
+
class_or_module.class_eval(&refinement)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module ArrayIncludeMethods
|
15
|
+
refine Array do
|
16
|
+
# Returns `true` if all of the given `array` elements are present in `self`,
|
17
|
+
# otherwise returns `false`
|
18
|
+
# Always returns `true` if the given `array` is empty
|
19
|
+
# `same_sort` kwarg indicates that array must have the same sort as `self`. By default, it is `false`
|
20
|
+
# e.g. [1,2,3].include_all?(2,3, same_sort: true) => true
|
21
|
+
def include_all?(*array)
|
22
|
+
options = array.last.is_a?(Hash) && array.last.has_key?(:same_sort) ? array.pop : {same_sort: false}
|
23
|
+
same_sort = options[:same_sort]
|
24
|
+
return false if array.size > self.size
|
25
|
+
self_copy = self.dup
|
26
|
+
array_copy = array.dup
|
27
|
+
book_keeping_array_copy = array.dup
|
28
|
+
self_element_index = last_element_index = -1
|
29
|
+
array_copy.each do |element|
|
30
|
+
if self_copy.include?(element)
|
31
|
+
last_element_index = self_element_index
|
32
|
+
self_element_index = self_copy.index(element)
|
33
|
+
return false if same_sort && self_element_index < last_element_index
|
34
|
+
self_copy.delete_at(self_element_index)
|
35
|
+
book_keeping_array_copy.delete(element)
|
36
|
+
else
|
37
|
+
return false
|
38
|
+
end
|
39
|
+
end
|
40
|
+
book_keeping_array_copy.empty?
|
41
|
+
end
|
42
|
+
|
43
|
+
# Returns `true` if the given `array` is present in `self` (in the same element order without repetition)
|
44
|
+
# Always returns `true` if the given `array` is empty
|
45
|
+
# Always returns `false` if the given `array` is nil
|
46
|
+
def include_array?(array)
|
47
|
+
return false if array.nil?
|
48
|
+
if array.size > self.size
|
49
|
+
false
|
50
|
+
else
|
51
|
+
size_diff = self.size - array.size
|
52
|
+
(size_diff + 1).times.any? do |start_index|
|
53
|
+
self[start_index, array.size] == array
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Returns `true` if any of the given `array` elements are present in `self`,
|
59
|
+
# otherwise returns `false`
|
60
|
+
# Always returns `true` if the given `array` is empty
|
61
|
+
def include_any?(*array)
|
62
|
+
!array.nil? && (array.empty? || !(self & array).empty?)
|
63
|
+
end
|
64
|
+
|
65
|
+
def array_index(array)
|
66
|
+
result_array_index = -1
|
67
|
+
return result_array_index if array.nil?
|
68
|
+
if array.size <= self.size
|
69
|
+
size_diff = self.size - array.size
|
70
|
+
current_array_index = nil
|
71
|
+
result = (size_diff + 1).times.any? do |start_index|
|
72
|
+
current_array_index = start_index
|
73
|
+
self[start_index, array.size] == array
|
74
|
+
end
|
75
|
+
result_array_index = current_array_index if result
|
76
|
+
end
|
77
|
+
result_array_index
|
78
|
+
end
|
79
|
+
|
80
|
+
def array_intersection_indexes(array)
|
81
|
+
array_intersection_and_diff_indexes(array)[:intersection_indexes]
|
82
|
+
end
|
83
|
+
alias array_intersection_indices array_intersection_indexes
|
84
|
+
|
85
|
+
def array_diff_indexes(array)
|
86
|
+
array_intersection_and_diff_indexes(array)[:diff_indexes]
|
87
|
+
end
|
88
|
+
alias array_diff_indices array_diff_indexes
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def array_intersection_and_diff_indexes(array)
|
93
|
+
return {intersection_indexes: [], diff_indexes: self.size.times.to_a} if array.nil?
|
94
|
+
intersection_indexes = []
|
95
|
+
diff_indexes = []
|
96
|
+
array_current_index = 0
|
97
|
+
each_with_index do |element, index|
|
98
|
+
if element == array[array_current_index]
|
99
|
+
intersection_indexes << index
|
100
|
+
array_current_index += 1
|
101
|
+
else
|
102
|
+
diff_indexes << index
|
103
|
+
end
|
104
|
+
end
|
105
|
+
{
|
106
|
+
intersection_indexes: intersection_indexes,
|
107
|
+
diff_indexes: diff_indexes
|
108
|
+
}
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -1,78 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
class_or_module.class_eval(&refinement)
|
5
|
-
end
|
6
|
-
end
|
7
|
-
refine Array do
|
8
|
-
# Returns `true` if all of the given `array` elements are present in `self`,
|
9
|
-
# otherwise returns `false`
|
10
|
-
# Always returns `true` if the given `array` is empty
|
11
|
-
# Always returns `false` if the given `array` is nil
|
12
|
-
def include_all?(*array)
|
13
|
-
array_argument = false
|
14
|
-
if array.size == 1 && array[0].is_a?(Array)
|
15
|
-
array_argument = true
|
16
|
-
array = array[0]
|
17
|
-
end
|
18
|
-
return false if array.nil?
|
19
|
-
array_include_other_array_same_class_elements = lambda do |a1, a2|
|
20
|
-
begin
|
21
|
-
if array_argument
|
22
|
-
if a2.size > a1.size
|
23
|
-
false
|
24
|
-
else
|
25
|
-
size_diff = a1.size - a2.size
|
26
|
-
(size_diff + 1).times.any? do |start_index|
|
27
|
-
a1[start_index, a2.size] == a2
|
28
|
-
end
|
29
|
-
end
|
30
|
-
else
|
31
|
-
(a1 & a2).uniq.sort == a2.uniq.sort
|
32
|
-
end
|
33
|
-
rescue ArgumentError => e
|
34
|
-
a2.uniq.all? { |element| a1.include?(element) }
|
35
|
-
end
|
36
|
-
end
|
37
|
-
self_grouped_by = self.group_by(&:class)
|
38
|
-
array_grouped_by = array.group_by(&:class)
|
39
|
-
return false unless array_include_other_array_same_class_elements.call(self_grouped_by.keys.map(&:to_s), array_grouped_by.keys.map(&:to_s))
|
40
|
-
array_grouped_by.reduce(true) do |result, pair|
|
41
|
-
array_class = pair.first
|
42
|
-
array_elements = pair.last
|
43
|
-
self_grouped_by[array_class]
|
44
|
-
result && array_include_other_array_same_class_elements.call(self_grouped_by[array_class], array_elements)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# Returns `true` if any of the given `array` elements are present in `self`,
|
49
|
-
# otherwise returns `false`
|
50
|
-
# Always returns `true` if the given `array` is empty
|
51
|
-
# Always returns `false` if the given `array` is nil
|
52
|
-
def include_any?(*array)
|
53
|
-
array = array[0] if array.size == 1 && array[0].is_a?(Array)
|
54
|
-
!array.nil? && (array.empty? || !(self & array).empty?)
|
55
|
-
end
|
56
|
-
|
57
|
-
def array_index(array)
|
58
|
-
result_array_index = -1
|
59
|
-
return result_array_index if array.nil?
|
60
|
-
if array.size <= self.size
|
61
|
-
size_diff = self.size - array.size
|
62
|
-
current_array_index = nil
|
63
|
-
result = (size_diff + 1).times.any? do |start_index|
|
64
|
-
current_array_index = start_index
|
65
|
-
self[start_index, array.size] == array
|
66
|
-
end
|
67
|
-
result_array_index = current_array_index if result
|
68
|
-
end
|
69
|
-
result_array_index
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
if RUBY_PLATFORM == 'opal'
|
74
|
-
# Create a shim using method that does nothing since we monkey-patch in Opal earlier in `refine` method
|
75
|
-
def self.using(refinement)
|
76
|
-
# NO OP
|
1
|
+
begin
|
2
|
+
Motion::Project::App.setup do |app|
|
3
|
+
app.files += [File.join(__dir__, 'array_include_methods', 'array.rb')]
|
77
4
|
end
|
5
|
+
rescue
|
6
|
+
require_relative 'array_include_methods/array'
|
78
7
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: array_include_methods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.7.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: puts_debuggerer
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rake-tui
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,8 +122,9 @@ dependencies:
|
|
108
122
|
- - ">"
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
|
-
description: Array#include_all
|
112
|
-
Array
|
125
|
+
description: Array#include_all?, Array#include_any?, Array#include_array?, Array#array_index,
|
126
|
+
Array#array_diff_indices, and Array#array_intersection_indices methods missing from
|
127
|
+
basic Ruby Array API. Compatible with Ruby, JRuby, Opal, and RubyMotion.
|
113
128
|
email: andy.am@gmail.com
|
114
129
|
executables: []
|
115
130
|
extensions: []
|
@@ -124,6 +139,7 @@ files:
|
|
124
139
|
- VERSION
|
125
140
|
- array_include_methods.gemspec
|
126
141
|
- lib/array_include_methods.rb
|
142
|
+
- lib/array_include_methods/array.rb
|
127
143
|
homepage: http://github.com/AndyObtiva/array_include_methods
|
128
144
|
licenses:
|
129
145
|
- MIT
|
@@ -143,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
159
|
- !ruby/object:Gem::Version
|
144
160
|
version: '0'
|
145
161
|
requirements: []
|
146
|
-
rubygems_version: 3.
|
162
|
+
rubygems_version: 3.3.3
|
147
163
|
signing_key:
|
148
164
|
specification_version: 4
|
149
165
|
summary: Array#include_all? & Array#include_any? methods missing from basic Ruby Array
|