yake 0.5.6 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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: