request-builder 0.1.111 → 0.1.115

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