yake 0.5.6 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aba47b876459cd693e66fd9920a01e381bb8ab2d697697c78d96f88459505bb9
4
- data.tar.gz: 583adb36b2bbd8183b7035616a64b13ae3acd33e04c5fdd68336af873047ddf0
3
+ metadata.gz: 608f4f31563bbda1db8213273eada195baa5ce02add9853a13f07904ace788f5
4
+ data.tar.gz: a91dc710313eefb17c11f6fd3e4887324260f715e059148cb9063565487e8222
5
5
  SHA512:
6
- metadata.gz: 60093f85ac70f2dc1d3fe23e378b5bba428191be5cfe18035db864ad54ad640f7ddd007e539831bbd377953d3e30368b5ac85a4f7abf0e3d214f0909ba4a275e
7
- data.tar.gz: 42f019aa7400f97cc04e55892b3f1f4be312a539e8ea8f29f4596cbaf412ad4696c468d330ddbb0fd935e38aeb78062227aa4983d678f8131a6c78f1ff1925d0
6
+ metadata.gz: 385cba84bca2c7992ec6072857a344f3a02ad191f0f3004cce9364e5738875a027fc7a264aba371e285d3a1ddd7a868de99b1058b38277d9205500c4c96fd1c7
7
+ data.tar.gz: 4b658f2d67d823cd59d02775e06de9de8f6f0593ecdb7eabc7d97bdfe966924b89c46598cd230f7656c01e42056c2f57370f17b8d6ec83293ef99fa57a936cd3
data/README.md CHANGED
@@ -197,11 +197,17 @@ 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
+ { f: 'g', a: { d: 'e', b: 'c' } }.deep_sort
209
+ # => { a: { b: 'c', d: 'e' }, f: 'g' }
210
+
205
211
  { fizz: 'buzz' }.encode64
206
212
  # => "eyJmaXp6IjoiYnV6eiJ9\n"
207
213
 
@@ -219,6 +225,10 @@ MyObject.new.try(:some_method)
219
225
 
220
226
  { fizz: 'buzz' }.to_form
221
227
  # => "fizz=buzz"
228
+
229
+ { f: 'g', a: { d: 'e', b: 'c' } }.to_json_sorted
230
+ # => '{"a":{"b":"c","d":"e"},"f":"g"}'
231
+
222
232
  ```
223
233
 
224
234
  `Integer` helpers:
@@ -257,6 +267,12 @@ host / path
257
267
  'fizz'.encode64
258
268
  # => "Zml6eg==\n"
259
269
 
270
+ 'fizz'.md5sum
271
+ # => "b6bfa6c318811be022d4f73070597660"
272
+
273
+ 'fizz'.sha1sum
274
+ # => "c25f5985f2ab63baeb2408a2d7dbc79d8f29d02f"
275
+
260
276
  'CamelCaseString'.snake_case
261
277
  # => "camel_case_string"
262
278
 
data/lib/yake/support.rb CHANGED
@@ -1,14 +1,17 @@
1
1
  require 'base64'
2
+ require 'digest'
2
3
  require 'json'
3
4
  require 'time'
4
5
 
5
6
  class Hash
7
+ def deep_sort() self.sort.map { |k,v| [ k, v.try(:deep_sort) { |x| x } ] }.to_h end
6
8
  def encode64() to_json.encode64 end
7
9
  def except(*keys) self.reject { |key,_| keys.include? key } end
8
10
  def strict_encode64() to_json.strict_encode64 end
9
11
  def stringify_names() JSON.parse(to_json) end
10
12
  def symbolize_names() JSON.parse(to_json, symbolize_names: true) end
11
13
  def to_form() URI.encode_www_form(self) end
14
+ def to_json_sorted() deep_sort.to_json end
12
15
  end
13
16
 
14
17
  class Integer
@@ -27,10 +30,10 @@ class Integer
27
30
  end
28
31
 
29
32
  class Object
30
- def try(method, *args, **kwargs)
33
+ def try(method, *args, **kwargs, &block)
31
34
  send(method, *args, **kwargs)
32
35
  rescue
33
- nil
36
+ block_given? ? yield(self) : nil
34
37
  end
35
38
  end
36
39
 
@@ -39,6 +42,8 @@ class String
39
42
  def camel_case() split(/_/).map(&:capitalize).join end
40
43
  def decode64() Base64.decode64(self) end
41
44
  def encode64() Base64.encode64(self) end
45
+ def md5sum() Digest::MD5.hexdigest(self) end
46
+ def sha1sum() Digest::SHA1.hexdigest(self) end
42
47
  def snake_case() gsub(/([a-z])([A-Z])/, '\1_\2').downcase end
43
48
  def strict_decode64() Base64.strict_decode64(self) end
44
49
  def strict_encode64() Base64.strict_encode64(self) end
data/lib/yake/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yake
4
- VERSION = '0.5.6'
4
+ VERSION = '0.6.0'
5
5
  end
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.5.6
4
+ version: 0.6.0
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-05-24 00:00:00.000000000 Z
11
+ date: 2022-05-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: