request-builder 0.2.0 → 0.2.2

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: 5cf3a97fe30fcae542fe7408baeb64a43e780756289223976cb2dec000fe7f55
4
- data.tar.gz: c14f4e0302f6b9cdd7dfee85c9cc8a2fdc02e8dbe15d8602ee7d63523abbaa26
3
+ metadata.gz: 8ecb2f6a3eab486b8d0a96687110aa4a97fd594c320da5ffb321d1faee2953f1
4
+ data.tar.gz: c10cdeaf0c5249dbec557e630b43ab04ca24ee65c88bf035a58418d5e19ea917
5
5
  SHA512:
6
- metadata.gz: bab01b5e370fa9bc933f885444c6d1a70dca7e67d3b587690f4fa28e69ad1e60f1e6ee7d2ef8dced6b0ac4c7853e41c1531c38545e64d111fd44492d8fc2fd36
7
- data.tar.gz: 88397b03a03cc68e9294588360ff1a9c2a5c125d7d778c1747228576937e47c903053416e261dc8a4c5f2851ac01b0e0329be1bc8fb139aaedeac1ff233310c8
6
+ metadata.gz: 37f6ff2f9f349ddb3a6502e9a8a0755b0c1d0848c800d5613ee19c84d8386eb2ba2b7668a7bcd7c2a8093368274af9b849682f34a2f09f32486ec01ef866a28c
7
+ data.tar.gz: 968768c2d2f2f18b6989602b49a7ff1da0cf8d8705d0d60c4f3098b02d9582b32307baef47d6cb569d5970c4c53f9f877e8ff84b050d9d8abdb25a765b078315
@@ -1,5 +1,4 @@
1
1
  require "faraday"
2
- require "faraday_middleware"
3
2
 
4
3
  module Request
5
4
  module Builder
@@ -12,7 +12,7 @@ module Request
12
12
 
13
13
  module ClassMethods
14
14
  def config(conf=nil)
15
- @config ||= conf.deep_dup || RequestConfig.new
15
+ @config ||= conf&.deep_dup || RequestConfig.new
16
16
  end
17
17
 
18
18
  def configure(conf = nil, &block)
@@ -10,19 +10,23 @@ module Request
10
10
  attr_reader :context, :stubs
11
11
  attr_writer *attrs, :stubs, :context
12
12
 
13
- def initialize
14
- @body = nil
15
- @host = nil
16
- @path = '/'
17
- @method = :get
18
- @request_middleware = :json
19
- @response_middleware = :json
20
- @adapter = Request::Builder.default_adapter
21
- @stubs = Faraday::Adapter::Test::Stubs.new
22
- @logger = nil
23
- @timeout = 30
24
- @response_schema = Dry::Schema.Params
13
+ def initialize(**params)
14
+ @body = params[:body]
15
+ @host = params[:host]
16
+ @path = params[:path] || '/'
17
+ @method = params[:method] ||:get
18
+ @request_middleware = params[:request_middleware] || :json
19
+ @response_middleware = params[:response_middleware] || :json
20
+ @adapter = params[:adapter] || Request::Builder.default_adapter
21
+ @stubs = params[:stubs] || Faraday::Adapter::Test::Stubs.new
22
+ @logger = params[:logger]
23
+ @timeout = params[:timeout] || 30
24
+ @response_schema = params[:response_schema] || Dry::Schema.Params
25
25
  @context = nil
26
+ @body = params[:body]
27
+ @params = params[:params] || HashWithIndifferentAccess.new
28
+ @headers = params[:headers] || HashWithIndifferentAccess.new
29
+ @callbacks = params[:callbacks] || HashWithIndifferentAccess.new
26
30
  end
27
31
 
28
32
  attrs.each do |attr|
@@ -41,18 +45,6 @@ module Request
41
45
  end
42
46
  end
43
47
 
44
- def headers
45
- @headers ||= HashWithIndifferentAccess.new
46
- end
47
-
48
- def params
49
- @params ||= HashWithIndifferentAccess.new
50
- end
51
-
52
- def callbacks
53
- @callbacks ||= HashWithIndifferentAccess.new
54
- end
55
-
56
48
  def stubs(value = nil, &block)
57
49
  if block_given?
58
50
  @stubs.instance_eval(&block)
@@ -105,6 +97,26 @@ module Request
105
97
  instance_variable_get("@#{property}".to_sym)
106
98
  end
107
99
 
100
+ def dup
101
+ Request::Builder::RequestConfig.new(
102
+ body: @body.dup,
103
+ host: @host.dup,
104
+ path: @path.dup,
105
+ method: @method,
106
+ request_middleware: @request_middleware,
107
+ response_middleware: @response_middleware,
108
+ adapter: @adapter,
109
+ stubs: @stubs,
110
+ logger: @logger,
111
+ timeout: @timeout,
112
+ response_schema: @response_schema,
113
+ body: @body.dup,
114
+ params: @params.dup,
115
+ headers: @headers.dup,
116
+ callbacks: @callbacks.dup
117
+ )
118
+ end
119
+
108
120
  Module.new do
109
121
  singleton_class.send :define_method, :included do |host_class|
110
122
  host_class.extend class_methods
@@ -12,7 +12,7 @@ module Request
12
12
  @response = response
13
13
  @context = context
14
14
  @before_validate = config.callbacks[:before_validate]
15
- @body = @before_validate ? @before_validate.call(response.body.to_h) : response.body.to_h
15
+ @body = @before_validate ? @before_validate.call(response.body) : response.body
16
16
  end
17
17
 
18
18
  def success?
@@ -1,5 +1,5 @@
1
1
  module Request
2
2
  module Builder
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.2"
4
4
  end
5
5
  end
@@ -23,8 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = []
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_dependency "faraday", "~> 1.7.1"
27
- spec.add_dependency "faraday_middleware", "~> 1.2.0"
26
+ spec.add_dependency "faraday", "~> 2.2.0"
28
27
  spec.add_dependency "dry-schema", "~> 1.9"
29
28
  spec.add_dependency "dry-initializer", "~> 3.0"
30
29
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: request-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Kostyuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-17 00:00:00.000000000 Z
11
+ date: 2023-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.7.1
19
+ version: 2.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.7.1
27
- - !ruby/object:Gem::Dependency
28
- name: faraday_middleware
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 1.2.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 1.2.0
26
+ version: 2.2.0
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: dry-schema
43
29
  requirement: !ruby/object:Gem::Requirement