yake 0.5.6 → 0.6.2
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/README.md +26 -0
- data/lib/yake/logger.rb +1 -1
- data/lib/yake/support.rb +28 -5
- data/lib/yake/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: 929c35260f97e7e32df7cf490709d767df7a5c237a8e2afdb1c35f59b54ff2cd
|
|
4
|
+
data.tar.gz: 87153830a05af4508213e719f6bb95469b2188a08153c86df4b18308624ab3df
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 75eca7fa2a5f62c87f95fa3c055f6a3d1b7c2fdf5a794fba5a10e603e4b4ed9bde291ecff18110beb5dc7b8680883d4ee51500cb407ad45a385d4ea22399e57c
|
|
7
|
+
data.tar.gz: c4510f71f02adbb03cc88f81abb4fe82df3ad085f184b4b593bde0d7d7715911d6ed88fa5f10219539ce0072441d40421f3c49ba4c9b2aafa41be46c75d76d85
|
data/README.md
CHANGED
|
@@ -197,11 +197,27 @@ MyObject.new.some_method
|
|
|
197
197
|
|
|
198
198
|
MyObject.new.try(:some_method)
|
|
199
199
|
# => nil
|
|
200
|
+
|
|
201
|
+
10.try(:some_method) { |x| x ** 2 }
|
|
202
|
+
# => 100
|
|
200
203
|
```
|
|
201
204
|
|
|
202
205
|
`Hash` helpers:
|
|
203
206
|
|
|
204
207
|
```ruby
|
|
208
|
+
{ a: { b: 'c', d: 'e' }, f: 'g' }.deep_keys
|
|
209
|
+
# => [:a, :b, :d, :f]
|
|
210
|
+
|
|
211
|
+
{ a: { b: 'c', d: 'e' }, f: 'g' }.deep_transform_keys(&:to_s)
|
|
212
|
+
# => { "a" => { "b" => "c", "d" => "e" }, "f" => "g" }
|
|
213
|
+
|
|
214
|
+
hash = { a: { b: 'c', d: 'e' }, f: 'g' }
|
|
215
|
+
hash.deep_transform_keys!(&:to_s)
|
|
216
|
+
# => { "a" => { "b" => "c", "d" => "e" }, "f" => "g" }
|
|
217
|
+
|
|
218
|
+
{ f: 'g', a: { d: 'e', b: 'c' } }.deep_sort
|
|
219
|
+
# => { a: { b: 'c', d: 'e' }, f: 'g' }
|
|
220
|
+
|
|
205
221
|
{ fizz: 'buzz' }.encode64
|
|
206
222
|
# => "eyJmaXp6IjoiYnV6eiJ9\n"
|
|
207
223
|
|
|
@@ -219,6 +235,10 @@ MyObject.new.try(:some_method)
|
|
|
219
235
|
|
|
220
236
|
{ fizz: 'buzz' }.to_form
|
|
221
237
|
# => "fizz=buzz"
|
|
238
|
+
|
|
239
|
+
{ f: 'g', a: { d: 'e', b: 'c' } }.to_json_sorted
|
|
240
|
+
# => '{"a":{"b":"c","d":"e"},"f":"g"}'
|
|
241
|
+
|
|
222
242
|
```
|
|
223
243
|
|
|
224
244
|
`Integer` helpers:
|
|
@@ -257,6 +277,12 @@ host / path
|
|
|
257
277
|
'fizz'.encode64
|
|
258
278
|
# => "Zml6eg==\n"
|
|
259
279
|
|
|
280
|
+
'fizz'.md5sum
|
|
281
|
+
# => "b6bfa6c318811be022d4f73070597660"
|
|
282
|
+
|
|
283
|
+
'fizz'.sha1sum
|
|
284
|
+
# => "c25f5985f2ab63baeb2408a2d7dbc79d8f29d02f"
|
|
285
|
+
|
|
260
286
|
'CamelCaseString'.snake_case
|
|
261
287
|
# => "camel_case_string"
|
|
262
288
|
|
data/lib/yake/logger.rb
CHANGED
data/lib/yake/support.rb
CHANGED
|
@@ -1,14 +1,35 @@
|
|
|
1
1
|
require 'base64'
|
|
2
|
+
require 'digest'
|
|
2
3
|
require 'json'
|
|
3
4
|
require 'time'
|
|
4
5
|
|
|
5
6
|
class Hash
|
|
7
|
+
def deep_keys() map { |k,v| v.respond_to?(:deep_keys) ? [k] + v.deep_keys : k }.flatten end
|
|
8
|
+
def deep_sort() sort.map { |k,v| [ k, v.try(:deep_sort) { |x| x } ] }.to_h end
|
|
6
9
|
def encode64() to_json.encode64 end
|
|
7
|
-
def except(*keys)
|
|
10
|
+
def except(*keys) reject { |key,_| keys.include? key } end
|
|
8
11
|
def strict_encode64() to_json.strict_encode64 end
|
|
9
|
-
def stringify_names()
|
|
10
|
-
def
|
|
12
|
+
def stringify_names() deep_transform_keys(&:to_s) end
|
|
13
|
+
def stringify_names!() deep_transform_keys!(&:to_s) end
|
|
14
|
+
def symbolize_names() deep_transform_keys(&:to_sym) end
|
|
15
|
+
def symbolize_names!() deep_transform_keys!(&:to_sym) end
|
|
11
16
|
def to_form() URI.encode_www_form(self) end
|
|
17
|
+
def to_json_sorted() deep_sort.to_json end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def deep_transform_keys(&block)
|
|
21
|
+
block_given? ? transform_keys(&block).map do |key, val|
|
|
22
|
+
val = val.deep_transform_keys(&block) if val.respond_to?(:deep_transform_keys)
|
|
23
|
+
[key, val]
|
|
24
|
+
end.to_h : self
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def deep_transform_keys!(&block)
|
|
28
|
+
block_given? ? transform_keys!(&block).map do |key, val|
|
|
29
|
+
val = val.deep_transform_keys!(&block) if val.respond_to?(:deep_transform_keys!)
|
|
30
|
+
[key, val]
|
|
31
|
+
end.to_h : self
|
|
32
|
+
end
|
|
12
33
|
end
|
|
13
34
|
|
|
14
35
|
class Integer
|
|
@@ -27,10 +48,10 @@ class Integer
|
|
|
27
48
|
end
|
|
28
49
|
|
|
29
50
|
class Object
|
|
30
|
-
def try(method, *args, **kwargs)
|
|
51
|
+
def try(method, *args, **kwargs, &block)
|
|
31
52
|
send(method, *args, **kwargs)
|
|
32
53
|
rescue
|
|
33
|
-
nil
|
|
54
|
+
block_given? ? yield(self) : nil
|
|
34
55
|
end
|
|
35
56
|
end
|
|
36
57
|
|
|
@@ -39,6 +60,8 @@ class String
|
|
|
39
60
|
def camel_case() split(/_/).map(&:capitalize).join end
|
|
40
61
|
def decode64() Base64.decode64(self) end
|
|
41
62
|
def encode64() Base64.encode64(self) end
|
|
63
|
+
def md5sum() Digest::MD5.hexdigest(self) end
|
|
64
|
+
def sha1sum() Digest::SHA1.hexdigest(self) end
|
|
42
65
|
def snake_case() gsub(/([a-z])([A-Z])/, '\1_\2').downcase end
|
|
43
66
|
def strict_decode64() Base64.strict_decode64(self) end
|
|
44
67
|
def strict_encode64() Base64.strict_encode64(self) end
|
data/lib/yake/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: yake
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Mancevice
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-07-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description:
|
|
14
14
|
email:
|