kapellmeister 0.9.2 → 0.9.4

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: 337f8e7acdbcaafc732017063272e3fed5b83e38d821ff54b1fffa8ca468bc75
4
- data.tar.gz: f2a3df9323c53525adde399483151654195bd2ab8ae6e6427b770695017dbfe4
3
+ metadata.gz: 5fd7d3c5d2244764964d2ceee2e2bf0400baa2c8aeac18a8bc49ac2e7aed5fc7
4
+ data.tar.gz: 1fa8a6ba63c7a40dd294fb0ee38ff9fb2f4c1532d3d56311b00647eea53dd6ab
5
5
  SHA512:
6
- metadata.gz: a0e3eba7db8ccb7ce666f4fc4756b7185ba1a45fdb65bfa954eab97db55b82ffa98593fbd57b63460219310322e1d7a492d6e8fa1fb395b438d972def3a052c8
7
- data.tar.gz: 9a7f4efebf831247fc577ca6cb60b611ee34663d23937b0f69fbc2b7cf387f08651c0011afb38384679f734ee0e0fdc0dab86c8eb8eb87f73f100225f8772b87
6
+ metadata.gz: 9a52a16e343a393a17c7bf7568f638ddd3a1b43cc992772ba89ce658174d73e08c24aae9ef554e03e91a9c1282515acf157f6a3002c6e4421dea333f4004458c
7
+ data.tar.gz: 499902ae0d25dd3623b6f8790a87ada07464219678bc60c6a82d1b3cd8233f5991728881e744373d9fc186d7832f65ec25eb1de6b1a08c28d5e64bc3f5027fea
@@ -91,6 +91,10 @@ class Kapellmeister::Dispatcher
91
91
  end
92
92
 
93
93
  def url_with_params(url)
94
+ url = url.split('/').map do |url_part|
95
+ url_part.ascii_only? ? url_part : CGI.escape(url_part)
96
+ end.join('/')
97
+
94
98
  return url if query_params.blank?
95
99
 
96
100
  uri = URI(url)
@@ -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)
@@ -45,7 +47,7 @@ def generate_path(original_path, data)
45
47
  next part unless part.include? '%<'
46
48
 
47
49
  data.delete(part.match(/%<(.*)>/).to_a.last.to_sym)
48
- end.join('/')
50
+ end.join('/').squeeze('/')
49
51
  end
50
52
 
51
53
  def valid_body?(data, body)
@@ -1,3 +1,3 @@
1
1
  module Kapellmeister
2
- VERSION = '0.9.2'.freeze
2
+ VERSION = '0.9.4'.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.2
4
+ version: 0.9.4
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-29 00:00:00.000000000 Z
11
+ date: 2022-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-schema