kapellmeister 0.7.3 → 0.9.1

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