kapellmeister 0.6.2 → 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: 409792ce404710854c377a9d87c4b36e03d86b03e0370459bc6b99dfacfec516
4
- data.tar.gz: 6cee24733a1acfc189bbdb34b2f3b3d28857402ba926cc77ce58f2d4be853164
3
+ metadata.gz: 923b108fbce0c08cee2eb79bf46fb2741a61d1e833f1ffc01fcad0d18bbae972
4
+ data.tar.gz: 2dc7915c615149b8a7c5c1ff8a84960e212ffba27e65f2a29f45fd3b6ed174f8
5
5
  SHA512:
6
- metadata.gz: 1d67914af1df363b0e89cfd7a71f48419da7db47350f307c7e0c251c0a4e3252446e10c1a33769e30c6bcf7c4b4f10c09d75a96608052aff68a7473e31ca74a8
7
- data.tar.gz: 373bac9c6d765bfb2a0350bb21dcfff117839e76b82b7a09dd3dc7ef48c77bba8090dc311c936c9e956b5cce3b0616a5f0ed00c2a98679ac34ec93c5bacee425
6
+ metadata.gz: 4011c6602baf6895abcb1ec4468dcdcd27ea987a56e5a4c4d6395f8ed523f020771b07e785bdfbbf2477696b31c4b5045c11042344548b3727fc1cc374918fdd
7
+ data.tar.gz: 3c4df81ba7e805659df36374c384e52f788d1d4a4309fac1b5da09eea099d5a9c6d26a3d58088e73c4ea0aa431cba8a93154aee9c65d8b7bfc091adca12ce62a
@@ -1,28 +1,21 @@
1
1
  require 'faraday_middleware'
2
+ require_relative './requests_extension'
2
3
 
3
4
  class Kapellmeister::Dispatcher
5
+ include Kapellmeister::RequestsExtension
6
+ delegate :request_processing, to: Kapellmeister::RequestsExtension
7
+
8
+ def initialize
9
+ self.class.module_parent.requests.each(&request_processing)
10
+ end
11
+
4
12
  def self.inherited(base)
5
13
  super
6
- base.extend(Kapellmeister::RequestsExtension)
7
-
8
14
  delegate :report, :logger, to: base.module_parent
9
15
  end
10
16
 
11
17
  FailedResponse = Struct.new(:success?, :response, :payload)
12
18
 
13
- def connection_by(method_name, path, data = {})
14
- additional_headers = data.delete(:headers) || {}
15
- requests_data = data.delete(:request) || {}
16
-
17
- generated_connection = connection(additional_headers: additional_headers, requests_data: requests_data) # rubocop:disable Style/HashSyntax (for support ruby 2.4+)
18
-
19
- process generated_connection.run_request(method_name.downcase.to_sym, path, data.to_json, additional_headers)
20
- rescue NameError, RuntimeError
21
- raise "Library can't process method #{method_name} yet"
22
- rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e
23
- failed_response(details: e.message)
24
- end
25
-
26
19
  def headers
27
20
  {}
28
21
  end
@@ -37,10 +30,23 @@ class Kapellmeister::Dispatcher
37
30
 
38
31
  private
39
32
 
33
+ def connection_by(method_name, path, data = {})
34
+ additional_headers = data.delete(:headers) || {}
35
+ requests_data = data.delete(:request) || {}
36
+
37
+ generated_connection = connection(additional_headers: additional_headers, requests_data: requests_data) # rubocop:disable Style/HashSyntax (for support ruby 2.4+)
38
+
39
+ process generated_connection.run_request(method_name.downcase.to_sym, path, data.to_json, additional_headers)
40
+ rescue NameError, RuntimeError
41
+ raise "Library can't process method #{method_name} yet"
42
+ rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e
43
+ failed_response(details: e.message)
44
+ end
45
+
40
46
  def connection(additional_headers:, requests_data:)
41
- ::Faraday.new(url: configuration.url,
42
- headers: headers_generate(**additional_headers),
43
- request: requests_generate(**requests_data)) do |faraday|
47
+ @connection ||= ::Faraday.new(url: configuration.url,
48
+ headers: headers_generate(**additional_headers),
49
+ request: requests_generate(**requests_data)) do |faraday|
44
50
  faraday.request :json, content_type: 'application/json; charset=utf-8'
45
51
  faraday.request :multipart
46
52
  faraday.response :logger, logger
@@ -10,17 +10,13 @@ module Kapellmeister::RequestsExtension
10
10
 
11
11
  full_path = generate_full_path(path, data)
12
12
 
13
- new.connection_by(method, full_path, data)
13
+ connection_by(method, full_path, data)
14
14
  }.call(**request_data)
15
15
  end
16
16
  end
17
17
  rescue NoMethodError
18
18
  raise "You need to define #{self} class with connection_by method"
19
19
  end
20
-
21
- def self.extended(base)
22
- base.module_parent.requests.each(&request_processing)
23
- end
24
20
  end
25
21
 
26
22
  def generate_full_path(original_path, data)
@@ -1,3 +1,3 @@
1
1
  module Kapellmeister
2
- VERSION = '0.6.2'.freeze
2
+ VERSION = '0.7.0'.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.6.2
4
+ version: 0.7.0
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-05 00:00:00.000000000 Z
11
+ date: 2022-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-schema