yake 0.6.4 → 0.6.5

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: e96eec76402a33ac4b0b57846ebfb90fcf22dd0adf3416cbd5acdf4b065f4675
4
- data.tar.gz: 057c08011065fd17236d85d5327be67204af2c17e94c5c4af65de4fd4ed61941
3
+ metadata.gz: d268bd340f033da7fa9ecf15ddda386b3868420c5dfcc57d3243493621f538c9
4
+ data.tar.gz: 17d13fb5d7b40de355cd5d09a4e55423e90d498f676d2b8eda1c118e336e2ba4
5
5
  SHA512:
6
- metadata.gz: 41435fce4006498e59c12939eb0b02a4b2c43ac2de2c892930ab38b0b5736c83a96922b28fb04b1a14530ed8deb35b849cfcb46ea38a90de71eb555e848897d7
7
- data.tar.gz: 8ff001c1440a29f90440e120187c2df33f0f9fd72c693587b07654a6543a1d1bef585e0b03483100df5002b302d7bcf03874ce16a0380bd85b00e397d5992e18
6
+ metadata.gz: 0fa7ea99f80783db6d7c194bacc3700afaec5ae945d9b7364c4bfa976ceaa8491c9a1596614632139700776235d74f86433319cb6fceb947e1d4427562df5543
7
+ data.tar.gz: fe09389ff1a12756ace3e03950b2e7fb241b21037d513c0bd23b1681b03072178ee5caf5947f98d2457ae760d2cc6f9405d9265974cc24650d440f8fe29a467f
data/README.md CHANGED
@@ -239,6 +239,11 @@ hash.deep_transform_keys!(&:to_s)
239
239
  { f: 'g', a: { d: 'e', b: 'c' } }.to_json_sorted
240
240
  # => '{"a":{"b":"c","d":"e"},"f":"g"}'
241
241
 
242
+ { f: 'g', a: { d: 'e', b: 'c' } }.to_struct
243
+ # => #<OpenStruct f="g", a={:d=>"e", :b=>"c"}>
244
+
245
+ { f: 'g', a: { d: 'e', b: 'c' } }.to_deep_struct
246
+ # => #<OpenStruct f="g", a=#<OpenStruct d="e", b="c">>
242
247
  ```
243
248
 
244
249
  `Integer` helpers:
@@ -297,6 +302,9 @@ host / path
297
302
 
298
303
  'fizz=buzz'.to_h_from_form
299
304
  # => { "fizz" => "buzz" }
305
+
306
+ '2009-02-13T23:31:30Z'.utc
307
+ # => 2009-02-13 23:31:30 UTC
300
308
  ```
301
309
 
302
310
  `Symbol` helpers
data/lib/yake/support.rb CHANGED
@@ -15,6 +15,7 @@ class Hash
15
15
  def symbolize_names!() deep_transform_keys!(&:to_sym) end
16
16
  def to_form() URI.encode_www_form(self) end
17
17
  def to_json_sorted() deep_sort.to_json end
18
+ def to_struct() OpenStruct.new(self) end
18
19
 
19
20
  def deep_transform_keys(&block)
20
21
  deep_transform(:transform_keys, &block)
@@ -24,6 +25,22 @@ class Hash
24
25
  deep_transform(:transform_keys!, &block)
25
26
  end
26
27
 
28
+ def to_deep_struct
29
+ to_struct.tap do |struct|
30
+ struct.to_h.each do |key, val|
31
+ struct[key] = if val.is_a?(Array)
32
+ val.map do |item|
33
+ item.respond_to?(:to_deep_struct) ? item.to_deep_struct : item
34
+ end
35
+ elsif val.is_a?(Hash)
36
+ val.to_deep_struct
37
+ else
38
+ val
39
+ end
40
+ end
41
+ end
42
+ end
43
+
27
44
  private def deep_transform(method, &block)
28
45
  f = -> (x) { x.respond_to?(:"deep_#{method}") ? x.send(:"deep_#{method}", &block) : x }
29
46
  block_given? ? send(method, &block).map do |key, val|
@@ -67,6 +84,7 @@ class String
67
84
  def strict_encode64() Base64.strict_encode64(self) end
68
85
  def to_h_from_json(**params) JSON.parse(self, **params) end
69
86
  def to_h_from_form() URI.decode_www_form(self).to_h end
87
+ def utc() UTC.parse(self) end
70
88
  end
71
89
 
72
90
  class Symbol
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.6.4'
4
+ VERSION = '0.6.5'
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.6.4
4
+ version: 0.6.5
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-08-12 00:00:00.000000000 Z
11
+ date: 2022-08-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: