yake 0.6.4 → 0.7.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: e96eec76402a33ac4b0b57846ebfb90fcf22dd0adf3416cbd5acdf4b065f4675
4
- data.tar.gz: 057c08011065fd17236d85d5327be67204af2c17e94c5c4af65de4fd4ed61941
3
+ metadata.gz: 8b15fb667d8aba0f2fed790898bac47dc745883203f5cc7adda48e5f9c1c58bd
4
+ data.tar.gz: e07bd79d34cb1a6e841eda84df0b392d8419e0ed3bcbcdb5bf49d2319b47b3c7
5
5
  SHA512:
6
- metadata.gz: 41435fce4006498e59c12939eb0b02a4b2c43ac2de2c892930ab38b0b5736c83a96922b28fb04b1a14530ed8deb35b849cfcb46ea38a90de71eb555e848897d7
7
- data.tar.gz: 8ff001c1440a29f90440e120187c2df33f0f9fd72c693587b07654a6543a1d1bef585e0b03483100df5002b302d7bcf03874ce16a0380bd85b00e397d5992e18
6
+ metadata.gz: 26e801e5d27b2a8c0241d465f7507cae64913e05e67d91a085ee179e8ec675c06d7e058013464e152e8255343a1790c4a9b7a1c2db45a74461c5a46524549687
7
+ data.tar.gz: 272b1c2ee937e87fdce222ad8228893614c18b4dd01072b050ce3ba24095c577a8ee6a40988ca00968156d916d87b0b0a9da04a668c2efde79c8ec798721dd94
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/dsl.rb CHANGED
@@ -22,7 +22,7 @@ module Yake
22
22
 
23
23
  ##
24
24
  # Turn logging on/off
25
- def logging(switch = :on, logger = nil, pretty: true)
25
+ def logging(switch = :on, logger = nil, pretty: false)
26
26
  Yake.pretty = pretty
27
27
  if switch == :on
28
28
  Yake.logger = logger
data/lib/yake/logger.rb CHANGED
@@ -34,7 +34,7 @@ module Yake
34
34
  end
35
35
 
36
36
  def pretty?
37
- @pretty != false
37
+ @pretty == true
38
38
  end
39
39
 
40
40
  def wrap(event = nil, context = nil, &block)
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.7.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.6.4
4
+ version: 0.7.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-08-12 00:00:00.000000000 Z
11
+ date: 2022-10-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: