eitil 1.1.33 → 1.1.34
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/eitil_core/README.md +29 -0
- data/eitil_core/lib/eitil_core/array.rb +2 -1
- data/eitil_core/lib/eitil_core/array/map_strings.rb +33 -0
- data/eitil_core/lib/eitil_core/hash.rb +1 -0
- data/eitil_core/lib/eitil_core/hash/transform_string_values.rb +33 -0
- data/lib/eitil/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cfe9b499c92cf50def38b6ff67a2aeec1966bc6a05d6cba5e4b7d8dfefb38dfd
|
|
4
|
+
data.tar.gz: 116a83f8965db21f455c5e36b8f253023b550f4c0ead34ecc14eb5ed7e04e894
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 86bf0a0faaaac7509647519dd200d767063bcab69759a8a9ebf36c0be406bae574923ebb3618113c7e3fb22228d71eb3e2970b998e6989a38ab5b9c49c12a2bc
|
|
7
|
+
data.tar.gz: 506b2a290c2323ff6c43453205d461ccb89c17a81dd08ff25f09e34a4826e4ccefa3909dff47bbf6e504ce44cb82059c89be40569f4038ac524c8f1317237c71
|
data/eitil_core/README.md
CHANGED
|
@@ -181,6 +181,21 @@ require "eitil_core/array"
|
|
|
181
181
|
|
|
182
182
|
```
|
|
183
183
|
|
|
184
|
+
```ruby
|
|
185
|
+
# require "eitil_core/array/map_strings"
|
|
186
|
+
|
|
187
|
+
map_strings(&block)
|
|
188
|
+
# transforms all strings in infinite recursion by yielding the given block, also works for strings contained in hashes.
|
|
189
|
+
# call as: ["hey", ["hi", {a: "ho"}]].map_strings! { |str| str.upcase }
|
|
190
|
+
# => ["HEY", ["HI", {a: "HO"}]]
|
|
191
|
+
```
|
|
192
|
+
```ruby
|
|
193
|
+
# require "eitil_core/array/map_strings"
|
|
194
|
+
|
|
195
|
+
map_strings!(&block)
|
|
196
|
+
# bang variant of .map_strings, which recursively modifies all objects it is called on.
|
|
197
|
+
```
|
|
198
|
+
|
|
184
199
|
```ruby
|
|
185
200
|
# require "eitil_core/array/slice_hashes"
|
|
186
201
|
|
|
@@ -355,6 +370,20 @@ auto_dig(_hash = self, _key)
|
|
|
355
370
|
# => 3
|
|
356
371
|
```
|
|
357
372
|
|
|
373
|
+
```ruby
|
|
374
|
+
# require "eitil_core/hash/transform_string_values"
|
|
375
|
+
|
|
376
|
+
transform_string_values(&block)
|
|
377
|
+
# transforms all strings in infinite recursion by yielding the given block, also works for strings contained in arrays.
|
|
378
|
+
# call as: {a: "hey", b: {c: "hi", d: ["ho"]}}.transform_string_values! { |str| str.upcase }
|
|
379
|
+
# => {a: "HEY", b: {c: "HI", d: ["HO"]}}
|
|
380
|
+
```
|
|
381
|
+
```ruby
|
|
382
|
+
# require "eitil_core/hash/transform_string_values"
|
|
383
|
+
|
|
384
|
+
transform_string_values!(&block)
|
|
385
|
+
# bang variant of .transform_string_values, which recursively modifies all objects it is called on.
|
|
386
|
+
```
|
|
358
387
|
|
|
359
388
|
## Lookups
|
|
360
389
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/array/map_strings"
|
|
3
|
+
|
|
4
|
+
require "eitil_core/hash/transform_string_values"
|
|
5
|
+
|
|
6
|
+
class Array
|
|
7
|
+
|
|
8
|
+
def map_strings!(&block)
|
|
9
|
+
map! do |item|
|
|
10
|
+
|
|
11
|
+
if item.class == String
|
|
12
|
+
yield item
|
|
13
|
+
|
|
14
|
+
elsif item.class == Hash
|
|
15
|
+
item.transform_string_values!(&block)
|
|
16
|
+
|
|
17
|
+
elsif item.class == Array
|
|
18
|
+
item.map_strings!(&block)
|
|
19
|
+
|
|
20
|
+
else
|
|
21
|
+
item
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
self
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def map_strings(&block)
|
|
30
|
+
deep_dup.map_strings!(&block)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/hash/transform_string_values"
|
|
3
|
+
|
|
4
|
+
require "eitil_core/array/map_strings"
|
|
5
|
+
|
|
6
|
+
class Hash
|
|
7
|
+
|
|
8
|
+
def transform_string_values!(&block)
|
|
9
|
+
transform_values! do |value|
|
|
10
|
+
|
|
11
|
+
if value.class == String
|
|
12
|
+
yield value
|
|
13
|
+
|
|
14
|
+
elsif value.class == Hash
|
|
15
|
+
value.transform_string_values!(&block)
|
|
16
|
+
|
|
17
|
+
elsif value.class == Array
|
|
18
|
+
value.map_strings!(&block)
|
|
19
|
+
|
|
20
|
+
else
|
|
21
|
+
value
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
self
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def transform_string_values(&block)
|
|
30
|
+
deep_dup.transform_string_values!(&block)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
data/lib/eitil/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: eitil
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.34
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jurriaan Schrofer
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-08-
|
|
11
|
+
date: 2021-08-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -103,6 +103,7 @@ files:
|
|
|
103
103
|
- eitil_core/lib/eitil_core/argument_helpers/args_to_ivars.rb
|
|
104
104
|
- eitil_core/lib/eitil_core/argument_helpers/args_to_ivars_bang.rb
|
|
105
105
|
- eitil_core/lib/eitil_core/array.rb
|
|
106
|
+
- eitil_core/lib/eitil_core/array/map_strings.rb
|
|
106
107
|
- eitil_core/lib/eitil_core/array/slice_hashes.rb
|
|
107
108
|
- eitil_core/lib/eitil_core/concerns.rb
|
|
108
109
|
- eitil_core/lib/eitil_core/concerns/include_concerns_of.rb
|
|
@@ -119,6 +120,7 @@ files:
|
|
|
119
120
|
- eitil_core/lib/eitil_core/formatters/sql.rb
|
|
120
121
|
- eitil_core/lib/eitil_core/hash.rb
|
|
121
122
|
- eitil_core/lib/eitil_core/hash/auto_dig.rb
|
|
123
|
+
- eitil_core/lib/eitil_core/hash/transform_string_values.rb
|
|
122
124
|
- eitil_core/lib/eitil_core/lookups.rb
|
|
123
125
|
- eitil_core/lib/eitil_core/lookups/all_methods.rb
|
|
124
126
|
- eitil_core/lib/eitil_core/lookups/gem_path.rb
|