request-builder 0.2.0 → 0.2.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: 5cf3a97fe30fcae542fe7408baeb64a43e780756289223976cb2dec000fe7f55
4
- data.tar.gz: c14f4e0302f6b9cdd7dfee85c9cc8a2fdc02e8dbe15d8602ee7d63523abbaa26
3
+ metadata.gz: e110bc438cf71ea590974b59776f31f98a83f813aa0a6ec71b4d89dc6270b0c0
4
+ data.tar.gz: a9b9b7561de2f5c881eb79e2b4c616bb44a97251a76f022712fc4368a91b4175
5
5
  SHA512:
6
- metadata.gz: bab01b5e370fa9bc933f885444c6d1a70dca7e67d3b587690f4fa28e69ad1e60f1e6ee7d2ef8dced6b0ac4c7853e41c1531c38545e64d111fd44492d8fc2fd36
7
- data.tar.gz: 88397b03a03cc68e9294588360ff1a9c2a5c125d7d778c1747228576937e47c903053416e261dc8a4c5f2851ac01b0e0329be1bc8fb139aaedeac1ff233310c8
6
+ metadata.gz: 067b073a76fc2b3f075e911b063fc27fef20c824013829757925856e33b7bf1c6b3b5307862e152c39e2e85fb035b2ece4c884be9b87152a5ffbfe375cae680a
7
+ data.tar.gz: '04238bd2df8e87d966a8267162ad140228391aacda7d5de3de50f6d4a543bc58eaa80e010f2aa644722bf365c3ddee383739d194f97026c0f1e56ac49bca381b'
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Request
2
2
  module Builder
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Kostyuk