request-builder 0.1.111 → 0.1.115

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: 0aac9f219c56f616535a5bfc7a4bd5c5f3582b14cf073222072163df5854567e
4
- data.tar.gz: 781222b721bec58b7176c748b534cc6a056028e4ec311939c894659fa0d5c490
3
+ metadata.gz: 0aeab800037782c3d71136146a447705d471b8cfa8a2bba2461ecbd157af7ca4
4
+ data.tar.gz: b417f235d042e847817ad4f733c0f99783358e1fc78d528199f3836a7ddb207b
5
5
  SHA512:
6
- metadata.gz: 8e88f125fdc7c80476816ffadbe2c53682ee744566c28e84aceeb1f9c012cc83d0076e91b7888173a512dc60ebfc6de0d6dcf83de4815301b6c7e9013cea1ce4
7
- data.tar.gz: 52211f5fd41ef89cde1275a238dda030bde4873d433c77e97dc8238b0d7aa3deb8f00d1d4fa832658068a93eaab4e62b5f2858e93e5beca771f61e98c629bf75
6
+ metadata.gz: 020b0311138c359c007f736158dc3a6b7a550f95b59e0e490421b21f3926dbc0c61a27aac9daddb520ed50ce4faeef62cb8c9e3aebdb43f9656e366fff2926dc
7
+ data.tar.gz: 89813f649c084295e3bb33853663272c620b4c840ce35f0c7eaae3ea10f8623d5a744b6c4d65a2107730647e3d8f3120778291e6da91c1a5acf8824c60e711b8
@@ -23,4 +23,4 @@ module Request
23
23
  end
24
24
  end
25
25
  end
26
- end
26
+ end
@@ -5,14 +5,15 @@ module Request
5
5
 
6
6
  delegate_missing_to :context
7
7
 
8
- attrs = [:host, :path, :method, :request_middleware, :response_middleware, :adapter, :logger, :timeout]
8
+ attrs = [:params, :callbacks, :headers, :body, :host, :path, :method, :request_middleware, :response_middleware, :adapter, :logger, :timeout]
9
9
 
10
10
  attr_reader :context, :body_conf, :headers_conf, :params_conf, :callbacks_conf, :stubs
11
- attr_writer *attrs, :stubs
11
+ attr_writer *attrs, :stubs, :context
12
12
 
13
13
  alias callbacks callbacks_conf
14
14
 
15
15
  def initialize
16
+ @body = nil
16
17
  @host = nil
17
18
  @path = '/'
18
19
  @method = :get
@@ -22,11 +23,12 @@ module Request
22
23
  @stubs = Faraday::Adapter::Test::Stubs.new
23
24
  @logger = nil
24
25
  @timeout = 30
25
- @body_conf = RequestConfig::Body.new
26
- @headers_conf = RequestConfig::Headers.new
27
- @params_conf = RequestConfig::Params.new
28
- @callbacks_conf = RequestConfig::Callbacks.new
26
+ @body = nil
29
27
  @response_schema = Dry::Schema.Params
28
+ @headers = HashWithIndifferentAccess.new
29
+ @params = HashWithIndifferentAccess.new
30
+ @callbacks = HashWithIndifferentAccess.new
31
+ @context = nil
30
32
  end
31
33
 
32
34
  attrs.each do |attr|
@@ -41,7 +43,7 @@ module Request
41
43
 
42
44
  [:before_validate].each do |name|
43
45
  define_method name do |&block|
44
- callbacks.send(name, &block)
46
+ @callbacks[name] = block
45
47
  end
46
48
  end
47
49
 
@@ -65,36 +67,32 @@ module Request
65
67
  end
66
68
  end
67
69
 
68
- def body(&block)
69
- return body_conf.set(&block) if block_given?
70
-
71
- body_conf.to_h
72
- end
73
-
74
- def headers(&block)
75
- headers_conf.instance_eval(&block) if block_given?
76
-
77
- headers_conf
78
- end
79
-
80
70
  def header(key, value = nil, &block)
81
- headers_conf.header(key, value, &block)
82
- end
83
-
84
- def params(&block)
85
- params_conf.instance_eval(&block) if block_given?
86
-
87
- params_conf
71
+ if value.nil? && block.nil?
72
+ value_with_context(@headers[key])
73
+ else
74
+ @headers[key] = block || value
75
+ end
88
76
  end
89
77
 
90
78
  def param(key, value = nil, &block)
91
- params_conf.param(key, value, &block)
79
+ if value.nil? && block.nil?
80
+ value_with_context(@params[key])
81
+ else
82
+ @params[key] = block || value
83
+ end
92
84
  end
93
85
 
94
- def context=(context)
95
- @context = context
86
+ def each_header
87
+ @headers.each do |key, value|
88
+ yield key, value_with_context(value)
89
+ end
90
+ end
96
91
 
97
- [body_conf, headers_conf, params_conf, callbacks_conf].each { |cnf| cnf.context = context }
92
+ def each_param
93
+ @params.each do |key, value|
94
+ yield key, value_with_context(value)
95
+ end
98
96
  end
99
97
 
100
98
  def [] property
@@ -5,7 +5,7 @@ module Request
5
5
  return obj unless obj.is_a?(Proc)
6
6
 
7
7
  case obj.arity
8
- when 1, -1, -2 then instance_exec(@context, &obj)
8
+ when 1, -1, -2 then instance_exec(self, &obj)
9
9
  else instance_exec(&obj)
10
10
  end
11
11
  end
@@ -1,5 +1,5 @@
1
1
  module Request
2
2
  module Builder
3
- VERSION = "0.1.111"
3
+ VERSION = "0.1.115"
4
4
  end
5
5
  end
@@ -6,11 +6,6 @@ require "active_support/core_ext/module/delegation"
6
6
  require_relative "builder/version"
7
7
  require_relative "builder/value_with_context"
8
8
  require_relative "builder/request_config"
9
- require_relative "builder/request_config/base"
10
- require_relative "builder/request_config/body"
11
- require_relative "builder/request_config/params"
12
- require_relative "builder/request_config/headers"
13
- require_relative "builder/request_config/callbacks"
14
9
  require_relative "builder/result"
15
10
  require_relative "builder/dsl"
16
11
  require_relative "builder/connection"
@@ -64,11 +59,11 @@ module Request
64
59
  @response = connection.send(config.method.downcase, config.path) do |req|
65
60
  req.options.timeout = config.timeout
66
61
 
67
- config.params.each do |key, value|
62
+ config.each_param do |key, value|
68
63
  req.params[key] = value
69
64
  end
70
65
 
71
- config.headers.each do |key, value|
66
+ config.each_header do |key, value|
72
67
  req.headers[key] = value
73
68
  end
74
69
 
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.1.111
4
+ version: 0.1.115
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-10-04 00:00:00.000000000 Z
11
+ date: 2022-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -127,11 +127,6 @@ files:
127
127
  - lib/request/builder/connection.rb
128
128
  - lib/request/builder/dsl.rb
129
129
  - lib/request/builder/request_config.rb
130
- - lib/request/builder/request_config/base.rb
131
- - lib/request/builder/request_config/body.rb
132
- - lib/request/builder/request_config/callbacks.rb
133
- - lib/request/builder/request_config/headers.rb
134
- - lib/request/builder/request_config/params.rb
135
130
  - lib/request/builder/result.rb
136
131
  - lib/request/builder/value_with_context.rb
137
132
  - lib/request/builder/version.rb
@@ -1,37 +0,0 @@
1
- module Request
2
- module Builder
3
- class RequestConfig::Base
4
- include ValueWithContext
5
-
6
- attr_accessor :context
7
- attr_reader :store
8
-
9
- delegate_missing_to :context
10
-
11
- def initialize(context = nil)
12
- @context = context
13
- end
14
-
15
- def each(&block)
16
- raise NotImplementedError unless store.is_a?(Enumerable)
17
-
18
- store.each do |value|
19
- value[1] = value_with_context(value[1])
20
- block.call(value)
21
- end
22
- end
23
-
24
- def [] key
25
- raise NotImplementedError unless store.is_a?(Enumerable)
26
-
27
- value_with_context(store[key])
28
- end
29
-
30
- private
31
-
32
- def store
33
- raise NotImplementedError
34
- end
35
- end
36
- end
37
- end
@@ -1,21 +0,0 @@
1
- module Request
2
- module Builder
3
- class RequestConfig::Body < Request::Builder::RequestConfig::Base
4
- def set(&block)
5
- raise ArgumentError, 'You must provide a block' unless block_given?
6
-
7
- @store = block
8
- end
9
-
10
- def to_h
11
- value_with_context(store)
12
- end
13
-
14
- private
15
-
16
- def store
17
- @store ||= nil
18
- end
19
- end
20
- end
21
- end
@@ -1,29 +0,0 @@
1
- module Request
2
- module Builder
3
- class RequestConfig::Callbacks < Request::Builder::RequestConfig::Base
4
- [:before_validate].each do |name|
5
- define_method name do |&block|
6
- raise ArgumentError, 'You must provide a block' unless block
7
-
8
- store[name] = block
9
- end
10
- end
11
-
12
- def each(&block)
13
- store.each do |value|
14
- block.call(value)
15
- end
16
- end
17
-
18
- def [] key
19
- store[key]
20
- end
21
-
22
- private
23
-
24
- def store
25
- @store ||= HashWithIndifferentAccess.new
26
- end
27
- end
28
- end
29
- end
@@ -1,17 +0,0 @@
1
- module Request
2
- module Builder
3
- class RequestConfig::Headers < Request::Builder::RequestConfig::Base
4
- def header(key, value = nil, &block)
5
- raise ArgumentError, 'Must provide a value or block' if !value && !block
6
-
7
- store[key] = block || value
8
- end
9
-
10
- private
11
-
12
- def store
13
- @store ||= HashWithIndifferentAccess.new
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module Request
2
- module Builder
3
- class RequestConfig::Params < Request::Builder::RequestConfig::Base
4
- def param(key, value = nil, &block)
5
- raise ArgumentError, 'Must provide a value or block' if !value && !block
6
-
7
- store[key] = block || value
8
- end
9
-
10
- private
11
-
12
- def store
13
- @store ||= HashWithIndifferentAccess.new
14
- end
15
- end
16
- end
17
- end