lite-ruby 1.0.27 → 1.0.28
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +18 -18
- data/docs/STRING.md +9 -18
- data/lib/lite/ruby/array.rb +0 -2
- data/lib/lite/ruby/enumerable.rb +2 -2
- data/lib/lite/ruby/hash.rb +2 -2
- data/lib/lite/ruby/numeric.rb +2 -4
- data/lib/lite/ruby/string.rb +20 -23
- data/lib/lite/ruby/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd3026256b8018c856fb0c727be35ddd1821a958e4d15f3473e84537797394c8
|
4
|
+
data.tar.gz: 2fde9576e70ea0b7b7a9d6482e05c10e23f1fe8866ccc28d8b82d155332babcd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb4afea421f458e8c807fca853e7ba889f64ebfab5481735760ae5c12be94a3f812b6004ee06ab87b6227c66a8c5a805ee570e170a9c52216907ec6247ec1f44
|
7
|
+
data.tar.gz: 288cb3064bba3feab275aafdd809cdef98e92bfbff0a6d686a87c61552a42f984453c78347b20aebb596b6661fe94b45a1622aec3b057de1fb9368e0d9071f39
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [1.0.28] - 2020-06-25
|
10
|
+
# Changed
|
11
|
+
- Rename String => `encode_only` to `safe_encode`
|
12
|
+
# Removed
|
13
|
+
- Remove String => `ascii_only`
|
14
|
+
|
9
15
|
## [1.0.26] - 2020-06-12
|
10
16
|
### Added
|
11
17
|
- Added array => `all_after`
|
data/Gemfile.lock
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
lite-ruby (1.0.
|
4
|
+
lite-ruby (1.0.28)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
actionpack (6.0.3.
|
10
|
-
actionview (= 6.0.3.
|
11
|
-
activesupport (= 6.0.3.
|
9
|
+
actionpack (6.0.3.2)
|
10
|
+
actionview (= 6.0.3.2)
|
11
|
+
activesupport (= 6.0.3.2)
|
12
12
|
rack (~> 2.0, >= 2.0.8)
|
13
13
|
rack-test (>= 0.6.3)
|
14
14
|
rails-dom-testing (~> 2.0)
|
15
15
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
16
|
-
actionview (6.0.3.
|
17
|
-
activesupport (= 6.0.3.
|
16
|
+
actionview (6.0.3.2)
|
17
|
+
activesupport (= 6.0.3.2)
|
18
18
|
builder (~> 3.1)
|
19
19
|
erubi (~> 1.4)
|
20
20
|
rails-dom-testing (~> 2.0)
|
21
21
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
22
|
-
activesupport (6.0.3.
|
22
|
+
activesupport (6.0.3.2)
|
23
23
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
24
24
|
i18n (>= 0.7, < 2)
|
25
25
|
minitest (~> 5.1)
|
@@ -30,7 +30,7 @@ GEM
|
|
30
30
|
colorize (0.8.1)
|
31
31
|
concurrent-ruby (1.1.6)
|
32
32
|
crass (1.0.6)
|
33
|
-
diff-lcs (1.
|
33
|
+
diff-lcs (1.4.2)
|
34
34
|
erubi (1.9.0)
|
35
35
|
fasterer (0.8.3)
|
36
36
|
colorize (~> 0.7)
|
@@ -40,7 +40,7 @@ GEM
|
|
40
40
|
railties (>= 3.0.0)
|
41
41
|
i18n (1.8.3)
|
42
42
|
concurrent-ruby (~> 1.0)
|
43
|
-
loofah (2.
|
43
|
+
loofah (2.6.0)
|
44
44
|
crass (~> 1.0.2)
|
45
45
|
nokogiri (>= 1.5.9)
|
46
46
|
method_source (1.0.0)
|
@@ -48,10 +48,10 @@ GEM
|
|
48
48
|
minitest (5.14.1)
|
49
49
|
nokogiri (1.10.9)
|
50
50
|
mini_portile2 (~> 2.4.0)
|
51
|
-
parallel (1.19.
|
52
|
-
parser (2.7.1.
|
53
|
-
ast (~> 2.4.
|
54
|
-
rack (2.2.
|
51
|
+
parallel (1.19.2)
|
52
|
+
parser (2.7.1.4)
|
53
|
+
ast (~> 2.4.1)
|
54
|
+
rack (2.2.3)
|
55
55
|
rack-test (1.1.0)
|
56
56
|
rack (>= 1.0, < 3)
|
57
57
|
rails-dom-testing (2.0.3)
|
@@ -59,9 +59,9 @@ GEM
|
|
59
59
|
nokogiri (>= 1.6)
|
60
60
|
rails-html-sanitizer (1.3.0)
|
61
61
|
loofah (~> 2.3)
|
62
|
-
railties (6.0.3.
|
63
|
-
actionpack (= 6.0.3.
|
64
|
-
activesupport (= 6.0.3.
|
62
|
+
railties (6.0.3.2)
|
63
|
+
actionpack (= 6.0.3.2)
|
64
|
+
activesupport (= 6.0.3.2)
|
65
65
|
method_source
|
66
66
|
rake (>= 0.8.7)
|
67
67
|
thor (>= 0.20.3, < 2.0)
|
@@ -82,13 +82,13 @@ GEM
|
|
82
82
|
diff-lcs (>= 1.2.0, < 2.0)
|
83
83
|
rspec-support (~> 3.9.0)
|
84
84
|
rspec-support (3.9.3)
|
85
|
-
rubocop (0.
|
85
|
+
rubocop (0.86.0)
|
86
86
|
parallel (~> 1.10)
|
87
87
|
parser (>= 2.7.0.1)
|
88
88
|
rainbow (>= 2.2.2, < 4.0)
|
89
89
|
regexp_parser (>= 1.7)
|
90
90
|
rexml
|
91
|
-
rubocop-ast (>= 0.0.3)
|
91
|
+
rubocop-ast (>= 0.0.3, < 1.0)
|
92
92
|
ruby-progressbar (~> 1.7)
|
93
93
|
unicode-display_width (>= 1.4.0, < 2.0)
|
94
94
|
rubocop-ast (0.0.3)
|
data/docs/STRING.md
CHANGED
@@ -17,15 +17,6 @@ Returns if a string includes a set of string(s).
|
|
17
17
|
'example string'.any?('foo', 'string') #=> true
|
18
18
|
```
|
19
19
|
|
20
|
-
`ascii_only(!)`
|
21
|
-
------
|
22
|
-
Replace non-ascii characters.
|
23
|
-
|
24
|
-
```ruby
|
25
|
-
'中文123'.ascii_only #=> '123'
|
26
|
-
'中文123'.ascii_only!('x') #=> 'xx123'
|
27
|
-
```
|
28
|
-
|
29
20
|
`at`
|
30
21
|
------
|
31
22
|
Returns the characters at index position, matching string, or regex.
|
@@ -144,15 +135,6 @@ Splits a string into multiple words and yields its enumeration.
|
|
144
135
|
'abc. 123'.each_word(&:campitalize!) #=> ['Abc.', '123']
|
145
136
|
```
|
146
137
|
|
147
|
-
`encode_only(!)`
|
148
|
-
------
|
149
|
-
Replace non-encode characters.
|
150
|
-
|
151
|
-
```ruby
|
152
|
-
'中文123'.encode_only('UTF-8') #=> '123'
|
153
|
-
'中文123'.encode_only!('ASCII', 'x') #=> 'xx123'
|
154
|
-
```
|
155
|
-
|
156
138
|
`ellipsize`
|
157
139
|
------
|
158
140
|
Truncate a string in the middle.
|
@@ -432,6 +414,15 @@ Rotate string to the left with count.
|
|
432
414
|
'example'.rotate(2) #=> 'ampleex'
|
433
415
|
```
|
434
416
|
|
417
|
+
`safe_encode(!)`
|
418
|
+
------
|
419
|
+
Replace non-encode characters.
|
420
|
+
|
421
|
+
```ruby
|
422
|
+
'中文123'.safe_encode('UTF-8') #=> '123'
|
423
|
+
'中文123'.safe_encode!('ASCII', 'x') #=> 'xx123'
|
424
|
+
```
|
425
|
+
|
435
426
|
`sample(!)`
|
436
427
|
------
|
437
428
|
Removes a random value and returns that value.
|
data/lib/lite/ruby/array.rb
CHANGED
@@ -350,7 +350,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('array')
|
|
350
350
|
self[0..position]
|
351
351
|
end
|
352
352
|
|
353
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
354
353
|
def to_sentence(options = {})
|
355
354
|
words_connector = options[:words_connector] || ', '
|
356
355
|
two_words_connector = options[:two_words_connector] || ' and '
|
@@ -363,7 +362,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('array')
|
|
363
362
|
else "#{self[0...-1].join(words_connector)}#{last_word_connector}#{self[-1]}"
|
364
363
|
end
|
365
364
|
end
|
366
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
367
365
|
|
368
366
|
end
|
369
367
|
end
|
data/lib/lite/ruby/enumerable.rb
CHANGED
@@ -153,7 +153,7 @@ if Lite::Ruby.configuration.monkey_patches.include?('enumerable')
|
|
153
153
|
end
|
154
154
|
end
|
155
155
|
|
156
|
-
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
156
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
|
157
157
|
def occur(amount = nil)
|
158
158
|
result = Hash.new { |hash, key| hash[key] = [] }
|
159
159
|
|
@@ -176,7 +176,7 @@ if Lite::Ruby.configuration.monkey_patches.include?('enumerable')
|
|
176
176
|
|
177
177
|
result.values.flatten.uniq
|
178
178
|
end
|
179
|
-
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
179
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
|
180
180
|
|
181
181
|
def pluck(*keys)
|
182
182
|
if keys.many?
|
data/lib/lite/ruby/hash.rb
CHANGED
@@ -102,7 +102,7 @@ if Lite::Ruby.configuration.monkey_patches.include?('hash')
|
|
102
102
|
end
|
103
103
|
# rubocop:enable Style/GuardClause
|
104
104
|
|
105
|
-
# rubocop:disable Metrics/MethodLength
|
105
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength
|
106
106
|
def collate(*others)
|
107
107
|
hash = {}
|
108
108
|
|
@@ -121,7 +121,7 @@ if Lite::Ruby.configuration.monkey_patches.include?('hash')
|
|
121
121
|
hash.each_value(&:flatten!)
|
122
122
|
hash
|
123
123
|
end
|
124
|
-
# rubocop:enable Metrics/MethodLength
|
124
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/MethodLength
|
125
125
|
|
126
126
|
def collate!(other_hash)
|
127
127
|
replace(collate(other_hash))
|
data/lib/lite/ruby/numeric.rb
CHANGED
@@ -173,8 +173,7 @@ if Lite::Ruby.configuration.monkey_patches.include?('numeric')
|
|
173
173
|
to_s.rjust(precision, pad_number.to_s)
|
174
174
|
end
|
175
175
|
|
176
|
-
# rubocop:disable Metrics/AbcSize, Metrics/
|
177
|
-
# rubocop:disable Metrics/MethodLength, Metrics/PerceivedComplexity
|
176
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
178
177
|
def pad_precision(options = {})
|
179
178
|
pad_number = options[:pad_number] || 0
|
180
179
|
precision = options[:precision] || 2
|
@@ -191,8 +190,7 @@ if Lite::Ruby.configuration.monkey_patches.include?('numeric')
|
|
191
190
|
string[0..(ljust_count - 1)]
|
192
191
|
end
|
193
192
|
end
|
194
|
-
# rubocop:enable Metrics/AbcSize, Metrics/
|
195
|
-
# rubocop:enable Metrics/MethodLength, Metrics/PerceivedComplexity
|
193
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
196
194
|
|
197
195
|
def percentage_of(number)
|
198
196
|
return 0 if zero? || number.zero?
|
data/lib/lite/ruby/string.rb
CHANGED
@@ -45,14 +45,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('string')
|
|
45
45
|
keys.any? { |key| include?(key) }
|
46
46
|
end
|
47
47
|
|
48
|
-
def ascii_only(alt = '')
|
49
|
-
dup.ascii_only!(alt)
|
50
|
-
end
|
51
|
-
|
52
|
-
def ascii_only!(alt = '')
|
53
|
-
encode_only!('ASCII', alt)
|
54
|
-
end
|
55
|
-
|
56
48
|
def at(position)
|
57
49
|
self[position]
|
58
50
|
end
|
@@ -136,21 +128,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('string')
|
|
136
128
|
words.each(&block)
|
137
129
|
end
|
138
130
|
|
139
|
-
def encode_only(encoding, alt = '')
|
140
|
-
dup.encode_only!(encoding, alt)
|
141
|
-
end
|
142
|
-
|
143
|
-
def encode_only!(encoding, alt = '')
|
144
|
-
encoding_options = {
|
145
|
-
invalid: :replace,
|
146
|
-
undef: :replace,
|
147
|
-
replace: alt,
|
148
|
-
UNIVERSAL_NEWLINE_DECORATOR: true
|
149
|
-
}
|
150
|
-
|
151
|
-
encode!(Encoding.find(encoding), encoding_options)
|
152
|
-
end
|
153
|
-
|
154
131
|
def ellipsize(ellipsize_at, options = {})
|
155
132
|
return self if length <= ellipsize_at
|
156
133
|
|
@@ -434,6 +411,26 @@ if Lite::Ruby.configuration.monkey_patches.include?('string')
|
|
434
411
|
slice!(amount, size - amount) + slice!(0, amount)
|
435
412
|
end
|
436
413
|
|
414
|
+
# rubocop:disable Metrics/MethodLength
|
415
|
+
def safe_encode(target_encoding, replacement = '')
|
416
|
+
encode(target_encoding)
|
417
|
+
rescue Encoding::InvalidByteSequenceError
|
418
|
+
force_encoding(target_encoding).scrub!(replacement)
|
419
|
+
rescue Encoding::UndefinedConversionError
|
420
|
+
encode(
|
421
|
+
target_encoding,
|
422
|
+
invalid: :replace,
|
423
|
+
undef: :replace,
|
424
|
+
replace: replacement,
|
425
|
+
UNIVERSAL_NEWLINE_DECORATOR: true
|
426
|
+
)
|
427
|
+
end
|
428
|
+
# rubocop:enable Metrics/MethodLength
|
429
|
+
|
430
|
+
def safe_encode!(target_encoding, replacement = '')
|
431
|
+
replace(safe_encode(target_encoding, replacement))
|
432
|
+
end
|
433
|
+
|
437
434
|
def sample(separator = ' ')
|
438
435
|
split(separator).sample
|
439
436
|
end
|
data/lib/lite/ruby/version.rb
CHANGED
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.0.
|
4
|
+
version: 1.0.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Gomez
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|