kapellmeister 0.9.1 → 0.9.3

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: d6af7aa9d66f3270add6706341c7f7d108fbc28445bbfc246ae90fd1d8f2c32b
4
- data.tar.gz: accaecadc8c8c8bd854cd45533e4bf4c8e8af43eaa20f0ddff1eec960ed25332
3
+ metadata.gz: 32e1209ce6cc479533048192e649ec0834e00dd32c2f259d5fa5ce9c57742b64
4
+ data.tar.gz: 4658216be2508dc3cb6821e8768083a44d6854845c7de7f08aa18b1bd5771418
5
5
  SHA512:
6
- metadata.gz: 59fd772844ade2b572f52b28077b7da6d75ae2b5408f1a29e57a45d9669dfed0f77bbf0244de439cc71dacc99f168f373f1348db7c43966b7fb5e3a2d4225f2e
7
- data.tar.gz: f76a05897c0e35d82a103fbb1ac0797ee75f64549e3c12f75d2250c4449c8881fa4d4938dca4468e0c373dae0d5f93e0e8efc51066350ed89ea1ed5db5193a4e
6
+ metadata.gz: 60a588209e3cb1de365500385d4196b23760f448fd27107f6da65d144b611a58fbb7b355011590b606c172dfdf7bff9754d4557a1e53183ab63c9da40b5eaa0e
7
+ data.tar.gz: 5f579c8ed56808d489f7ffbae8b8fda9556796145b640e2f2f5f196dabcde2e29c2265c6f99313fe789a7c7491017506207154805945ac8ab80ce41226806fa6
@@ -44,7 +44,7 @@ def generate_routes(json_scheme)
44
44
  end
45
45
 
46
46
  def mapping(deep_key, deep_value, key, scheme)
47
- old_path = deep_value[:path]
47
+ old_path = deep_value[:path].presence || deep_key.to_s
48
48
  name = old_path.split('/').map { |part| part.gsub(/%<.*?>/, '') }.reject(&:empty?)
49
49
  deep_value[:path] = [key, old_path].join('/')
50
50
 
@@ -8,6 +8,8 @@ module Kapellmeister::RequestsExtension
8
8
 
9
9
  mod.module_eval do
10
10
  define_method name do |data = {}|
11
+ data.deep_compact!
12
+
11
13
  proc { |method:, path: nil, body: {}, query_params: {}, mock: ''|
12
14
  if (Rails.try(:env) || ENV.fetch('APP_ENV', nil)) == 'test'
13
15
  return ::Kapellmeister::Base.routes_scheme_parse(mock)
@@ -1,3 +1,3 @@
1
1
  module Kapellmeister
2
- VERSION = '0.9.1'.freeze
2
+ VERSION = '0.9.3'.freeze
3
3
  end
data/lib/kapellmeister.rb CHANGED
@@ -1,5 +1,43 @@
1
1
  module Kapellmeister; end
2
2
 
3
+ class Object
4
+ def deep_compact
5
+ self
6
+ end
7
+
8
+ def deep_compact!
9
+ self
10
+ end
11
+ end
12
+
13
+ class Array
14
+ def deep_compact
15
+ filter_map(&:deep_compact)
16
+ end
17
+
18
+ def deep_compact!
19
+ map!(&:deep_compact!).compact!
20
+ end
21
+ end
22
+
23
+ class Hash
24
+ def deep_compact
25
+ each_with_object({}) do |(key, value), hash|
26
+ if (new_value = value.deep_compact)
27
+ hash[key] = new_value
28
+ end
29
+ end
30
+ end
31
+
32
+ def deep_compact!
33
+ each do |key, value|
34
+ if (new_value = value.deep_compact)
35
+ self[key] = new_value
36
+ end
37
+ end
38
+ end
39
+ end
40
+
3
41
  require 'kapellmeister/base'
4
42
  require 'kapellmeister/dispatcher'
5
43
  require 'kapellmeister/requests_extension'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kapellmeister
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - DarkWater
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-12 00:00:00.000000000 Z
11
+ date: 2022-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-schema