yake 0.6.4 → 0.6.5

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: 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: