kapellmeister 0.7.3 → 0.9.1

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: c63a59e324e6fd25a43b163b8db3a826b617cff0101f4cb001f1825f7fc9fc06
4
- data.tar.gz: 38a102e6272a99813bf78181e7aa7aded4e3ab22864059c3582f0297d0263884
3
+ metadata.gz: d6af7aa9d66f3270add6706341c7f7d108fbc28445bbfc246ae90fd1d8f2c32b
4
+ data.tar.gz: accaecadc8c8c8bd854cd45533e4bf4c8e8af43eaa20f0ddff1eec960ed25332
5
5
  SHA512:
6
- metadata.gz: d05effbadfaba1923440b05ca4875d501a5fe281899b34c0c6fea5998e260159286d72f17800cea730b36fdff72c80409f3ce6d6059a504de6fb0fa92b990ddf
7
- data.tar.gz: 2be64d2e49d7f78b51075a6477020bad5441f8edeb20e5ecc0ccdab8bf5cc9ee8978b11cf01efb6d0945e89db40cc39f828ff678b65424e27744abf3326d0794
6
+ metadata.gz: 59fd772844ade2b572f52b28077b7da6d75ae2b5408f1a29e57a45d9669dfed0f77bbf0244de439cc71dacc99f168f373f1348db7c43966b7fb5e3a2d4225f2e
7
+ data.tar.gz: f76a05897c0e35d82a103fbb1ac0797ee75f64549e3c12f75d2250c4449c8881fa4d4938dca4468e0c373dae0d5f93e0e8efc51066350ed89ea1ed5db5193a4e
@@ -2,11 +2,13 @@ require 'faraday_middleware'
2
2
  require_relative './requests_extension'
3
3
 
4
4
  class Kapellmeister::Dispatcher
5
- include Kapellmeister::RequestsExtension
6
- delegate :request_processing, to: Kapellmeister::RequestsExtension
5
+ def self.new(**args)
6
+ main_klass = self.module_parent.name.delete('::')
7
7
 
8
- def initialize
9
- self.class.module_parent.requests.each(&request_processing)
8
+ self.module_parent.requests.each do |request|
9
+ self.include Kapellmeister::RequestsExtension.request_processing(main_klass, request)
10
+ end
11
+ super(**args)
10
12
  end
11
13
 
12
14
  def self.inherited(base)
@@ -1,12 +1,19 @@
1
1
  module Kapellmeister::RequestsExtension
2
- def self.request_processing
3
- proc do |name, request_data|
2
+ def self.request_processing(klass, (name, request_data))
3
+ mod = if Object.const_defined?("#{self}::#{klass}InstanceMethods")
4
+ const_get("#{self}::#{klass}InstanceMethods")
5
+ else
6
+ const_set("#{klass}InstanceMethods", Module.new)
7
+ end
8
+
9
+ mod.module_eval do
4
10
  define_method name do |data = {}|
5
- proc { |method:, path:, body: {}, query_params: {}, mock: ''|
11
+ proc { |method:, path: nil, body: {}, query_params: {}, mock: ''|
6
12
  if (Rails.try(:env) || ENV.fetch('APP_ENV', nil)) == 'test'
7
13
  return ::Kapellmeister::Base.routes_scheme_parse(mock)
8
14
  end
9
15
 
16
+ data = query_params.compact_blank.merge(data) if data.is_a?(Hash)
10
17
  valid_body?(data, body)
11
18
  valid_query?(data, query_params)
12
19
 
@@ -16,6 +23,8 @@ module Kapellmeister::RequestsExtension
16
23
  }.call(**request_data)
17
24
  end
18
25
  end
26
+
27
+ mod
19
28
  rescue NoMethodError
20
29
  raise "You need to define #{self} class with connection_by method"
21
30
  end
@@ -23,10 +32,15 @@ end
23
32
 
24
33
  def generate_full_path(original_path, data)
25
34
  path = generate_path(original_path, data)
26
- [path, data.delete(:query_params)&.to_query].compact_blank!.join('?')
35
+ query = data.delete(:query_params)&.to_query
36
+ return "?#{query}" unless path
37
+
38
+ [path, query].compact_blank!.join('?')
27
39
  end
28
40
 
29
41
  def generate_path(original_path, data)
42
+ return nil unless original_path
43
+
30
44
  original_path.split('/').map do |part|
31
45
  next part unless part.include? '%<'
32
46
 
@@ -1,3 +1,3 @@
1
1
  module Kapellmeister
2
- VERSION = '0.7.3'.freeze
2
+ VERSION = '0.9.1'.freeze
3
3
  end
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.7.3
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - DarkWater
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-21 00:00:00.000000000 Z
11
+ date: 2022-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-schema