lite-ruby 1.1.8 → 1.1.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5cc9dd9687e74df36b99aef11ca0b804161e5bf63b96872e1aa04974127c0fe
4
- data.tar.gz: 784f195955ead892563a881ecccbb548f5faf95057c12408c7f94619a9fe182a
3
+ metadata.gz: b32c7f149936f48b462434da3dd84d20667a9bbe0771fd284df29b8d515a8339
4
+ data.tar.gz: a220ce1b98faa3487d4a6fead4eaf9a7dccf00b6c480d2657e94f3e449bd5884
5
5
  SHA512:
6
- metadata.gz: '093d15a0c4579fcd4230de82edf2d78975a30b12e7e9a63ea2d7d0cc29832a019add61192eea7a6bcb65c6018d22e411cb2bee6dcee4bc169da5b3f5063a80be'
7
- data.tar.gz: 8ddcdfdd7059f5cb9d54b64f4598b9dc0747e9f3d8f1e49c865b4477369cad0c414ac89be4eb9e7d87b4e9d9a04d75de745fd61fef71c8defd880bf566e85a56
6
+ metadata.gz: 7e878a158ba8b9118ee0ad83aee4538b55ab70a379bc288c4985f3243901d4a4b3b481669fbff8dfde32b262f53294f0ecd35061a201acc50e64e73b5eabf8fa
7
+ data.tar.gz: e51ce8fa082348bca0020a6190d72b8845944f01e230ba5f6c67c6f405f6311c0ca002d02fee9c93037c11d4e762c1d1b6df164c3ab7b35a3bd573dd09926932
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.1.9] - 2021-05-26
10
+ ### Added
11
+ - Added Array => `match`
12
+ - Added Array => `strip` to `compact_blank` alias
13
+ - Added Enumerable => `pick`
14
+ ### Changed
15
+ - Move safe requires to bottom of file
16
+
9
17
  ## [1.1.8] - 2021-07-05
10
18
  ### Changed
11
19
  - Linter fixes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-ruby (1.1.8)
4
+ lite-ruby (1.1.9)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -46,7 +46,7 @@ GEM
46
46
  method_source (1.0.0)
47
47
  mini_portile2 (2.5.1)
48
48
  minitest (5.14.4)
49
- nokogiri (1.11.3)
49
+ nokogiri (1.11.6)
50
50
  mini_portile2 (~> 2.5.0)
51
51
  racc (~> 1.4)
52
52
  parallel (1.20.1)
@@ -84,7 +84,7 @@ GEM
84
84
  diff-lcs (>= 1.2.0, < 2.0)
85
85
  rspec-support (~> 3.10.0)
86
86
  rspec-support (3.10.2)
87
- rubocop (1.14.0)
87
+ rubocop (1.15.0)
88
88
  parallel (~> 1.10)
89
89
  parser (>= 3.0.0.0)
90
90
  rainbow (>= 2.2.2, < 4.0)
@@ -93,7 +93,7 @@ GEM
93
93
  rubocop-ast (>= 1.5.0, < 2.0)
94
94
  ruby-progressbar (~> 1.7)
95
95
  unicode-display_width (>= 1.4.0, < 3.0)
96
- rubocop-ast (1.5.0)
96
+ rubocop-ast (1.6.0)
97
97
  parser (>= 3.0.1.1)
98
98
  rubocop-performance (1.11.3)
99
99
  rubocop (>= 1.7.0, < 2.0)
@@ -104,9 +104,9 @@ GEM
104
104
  rubocop (~> 1.0)
105
105
  rubocop-ast (>= 1.1.0)
106
106
  ruby-progressbar (1.11.0)
107
- ruby_parser (3.15.1)
108
- sexp_processor (~> 4.9)
109
- sexp_processor (4.15.2)
107
+ ruby_parser (3.16.0)
108
+ sexp_processor (~> 4.15, >= 4.15.1)
109
+ sexp_processor (4.15.3)
110
110
  thor (1.1.0)
111
111
  tzinfo (2.0.4)
112
112
  concurrent-ruby (~> 1.0)
@@ -129,4 +129,4 @@ DEPENDENCIES
129
129
  rubocop-rspec
130
130
 
131
131
  BUNDLED WITH
132
- 2.2.17
132
+ 2.2.18
data/docs/ARRAY.md CHANGED
@@ -235,6 +235,15 @@ Returns all indexes of the matching value.
235
235
  [:a,:b,:a,:c].indexes(:a) #=> [0, 2]
236
236
  ```
237
237
 
238
+ `match`
239
+ ------
240
+ Select a given value from the array.
241
+
242
+ ```ruby
243
+ [1, 2, 3, 4].match(1) #=> 1
244
+ [1, 2, 3, 4].match(9) #=> nil
245
+ ```
246
+
238
247
  `merge(!)`
239
248
  ------
240
249
  Concats multiple arrays.
@@ -259,6 +268,7 @@ Selects given values from the array.
259
268
 
260
269
  ```ruby
261
270
  [1, 2, 3, 4].only(1, 3) #=> [1, 3]
271
+ [1, 2, 3, 4].only!(8, 9) #=> []
262
272
  ```
263
273
 
264
274
  `probability`
@@ -328,7 +338,7 @@ Divides the array into one or more subarrays based on a delimiting value or the
328
338
  (1..10).to_a.split { |i| i % 3 == 0 } # => [[1, 2], [4, 5], [7, 8], [10]]
329
339
  ```
330
340
 
331
- `strip(!)`
341
+ `strip(!)` aka `compact_blank(!)`
332
342
  ------
333
343
  Removes blank elements from an array.
334
344
 
data/docs/ENUMERABLE.md CHANGED
@@ -158,6 +158,18 @@ a1.occur(2..3) #=> [1,3,5]
158
158
  a1.occur { |n| n > 1 } #=> [1,3,5]
159
159
  ```
160
160
 
161
+ `pick`
162
+ ------
163
+ Returns a value from a set of given keys.
164
+
165
+ ```ruby
166
+ a1 = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }]
167
+
168
+ a1.pick(:id) #=> 1
169
+ a1.pick(:id, :name) #=> [1,'a']
170
+ a1.pick(:fake) #=> nil
171
+ ```
172
+
161
173
  `pluck`
162
174
  ------
163
175
  Returns an array of values from a set of given keys.
@@ -167,6 +179,7 @@ a1 = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }]
167
179
 
168
180
  a1.pluck(:id) #=> [1,2]
169
181
  a1.pluck(:id, :name) #=> [[1,'a'], [2,'b']]
182
+ a1.pluck(:fake) #=> [nil,nil]
170
183
  ```
171
184
 
172
185
  `produce`
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  if Lite::Ruby.configuration.monkey_patches.include?('array')
4
- require 'lite/ruby/safe/array' unless defined?(ActiveSupport)
5
-
6
4
  class Array
7
5
 
8
6
  def assert_min_values!(*valid_values)
@@ -188,6 +186,10 @@ if Lite::Ruby.configuration.monkey_patches.include?('array')
188
186
  array
189
187
  end
190
188
 
189
+ def match(value)
190
+ find { |val| value == val }
191
+ end
192
+
191
193
  def merge(*values)
192
194
  dup.merge!(*values)
193
195
  end
@@ -282,4 +284,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('array')
282
284
  alias select_values! only!
283
285
 
284
286
  end
287
+
288
+ require 'lite/ruby/safe/array' unless defined?(ActiveSupport)
285
289
  end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  if Lite::Ruby.configuration.monkey_patches.include?('enumerable')
4
- require 'lite/ruby/safe/enumerable' unless defined?(ActiveSupport)
5
-
6
4
  module Enumerable
7
5
 
8
6
  def cluster
@@ -209,4 +207,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('enumerable')
209
207
  alias occurrences frequency
210
208
 
211
209
  end
210
+
211
+ require 'lite/ruby/safe/enumerable' unless defined?(ActiveSupport)
212
212
  end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  if Lite::Ruby.configuration.monkey_patches.include?('hash')
4
- require 'lite/ruby/safe/hash' unless defined?(ActiveSupport)
5
-
6
4
  class Hash
7
5
 
8
6
  class << self
@@ -405,4 +403,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('hash')
405
403
  alias to_o to_object
406
404
 
407
405
  end
406
+
407
+ require 'lite/ruby/safe/hash' unless defined?(ActiveSupport)
408
408
  end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  if Lite::Ruby.configuration.monkey_patches.include?('object')
4
- require 'lite/ruby/safe/object' unless defined?(ActiveSupport)
5
-
6
4
  class Object
7
5
 
8
6
  FALSE_VALUES = %w[
@@ -168,4 +166,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('object')
168
166
  alias to_b to_bool
169
167
 
170
168
  end
169
+
170
+ require 'lite/ruby/safe/object' unless defined?(ActiveSupport)
171
171
  end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  if Lite::Ruby.configuration.monkey_patches.include?('range')
4
- require 'lite/ruby/safe/range' unless defined?(ActiveSupport)
5
-
6
4
  class Range
7
5
 
8
6
  def combine(other)
@@ -29,4 +27,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('range')
29
27
  end
30
28
 
31
29
  end
30
+
31
+ require 'lite/ruby/safe/range' unless defined?(ActiveSupport)
32
32
  end
@@ -98,4 +98,7 @@ class Array
98
98
  end
99
99
  end
100
100
 
101
+ alias compact_blank strip
102
+ alias compact_blank! strip!
103
+
101
104
  end
@@ -28,11 +28,22 @@ module Enumerable
28
28
  end
29
29
  end
30
30
 
31
+ def pick(*keys)
32
+ return if none?
33
+
34
+ if keys.many?
35
+ keys.map { |key| first[key] }
36
+ else
37
+ first[keys.first]
38
+ end
39
+ end
40
+
31
41
  def pluck(*keys)
32
42
  if keys.many?
33
43
  map { |element| keys.map { |key| element[key] } }
34
44
  else
35
- map { |element| element[keys.first] }
45
+ key = keys.first
46
+ map { |element| element[key] }
36
47
  end
37
48
  end
38
49
 
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  if Lite::Ruby.configuration.monkey_patches.include?('string')
4
- require 'lite/ruby/safe/string' unless defined?(ActiveSupport)
5
-
6
4
  class String
7
5
 
8
6
  TRANSLITERATIONS = {
@@ -482,4 +480,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('string')
482
480
  alias titlecase! titleize!
483
481
 
484
482
  end
483
+
484
+ require 'lite/ruby/safe/string' unless defined?(ActiveSupport)
485
485
  end
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Ruby
5
5
 
6
- VERSION = '1.1.8'
6
+ VERSION = '1.1.9'
7
7
 
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lite-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-07 00:00:00.000000000 Z
11
+ date: 2021-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  requirements: []
225
- rubygems_version: 3.2.17
225
+ rubygems_version: 3.2.18
226
226
  signing_key:
227
227
  specification_version: 4
228
228
  summary: Collection of useful Ruby methods for its primitive classes