eac_envs-http 0.6.0 → 0.7.0

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: 26e1482ff58e47b7a780079016d86be8ebc34f24abce6b72884490a82a2f9cdb
4
- data.tar.gz: b8c417ee8ea17f08c445308d0a613ed0ce368836ddbf0c3737d22feaa796a023
3
+ metadata.gz: d35703eb0286b3fb08eba23a42f4f8dad4f80906ef1b06a4491ff191caf128e1
4
+ data.tar.gz: 60558c597664fbff0237efec6e16c0a9b1eb376057d9119f19386c32ff9d3e75
5
5
  SHA512:
6
- metadata.gz: f6b78b5edb1f9bee713d93851a87ee9c9874e99ea689bb795d5726632663060bb4b6c2269e1108cdd2384db13c7d2b7bc7281c31dddd41a31a60a46c087b8830
7
- data.tar.gz: 36b9871a50b8f8d8de845eff995955dbbeef82c12e0fbb743a47a5d5f4b8177b74ab03489feb1c0bfe7cf3d06cff5c523e218a71e618dcfe619ec4af0f475280
6
+ metadata.gz: bb7bc6120f6da34d9e62787d86b73622adc3f716a108d8acc5fc17a4e69eef568a2897e0abda9bccb8f07707c7171d72a11dfdd98b3e056774ebe8cb425bdc15
7
+ data.tar.gz: 171e31a40dbe1227f67b9898048cf38f02ad4b8edfedc2ebdfc746acabde294e19ccee6fd9c2903d8e24e228817a5bc6959f5521c7dac91f3416c02a51221210
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_envs/http/request/body_field_value'
4
- require 'eac_ruby_utils/core_ext'
5
- require 'faraday/multipart/file_part'
6
-
7
3
  module EacEnvs
8
4
  module Http
9
5
  class Request
@@ -1,10 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/file_info'
4
- require 'eac_ruby_utils/core_ext'
5
- require 'faraday'
6
- require 'faraday/multipart'
7
-
8
3
  module EacEnvs
9
4
  module Http
10
5
  class Request
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_envs/http/request/body_field'
5
-
6
3
  module EacEnvs
7
4
  module Http
8
5
  class Request
@@ -1,12 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
- require 'faraday'
5
- require 'faraday/follow_redirects'
6
- require 'faraday/gzip'
7
- require 'faraday/multipart'
8
- require 'faraday/retry'
9
-
10
3
  module EacEnvs
11
4
  module Http
12
5
  class Request
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_envs/http/response'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
3
  module EacEnvs
7
4
  module Http
8
5
  class Request
@@ -50,7 +47,7 @@ module EacEnvs
50
47
  private
51
48
 
52
49
  def sanitized_body_data
53
- body_fields.to_h || body_data
50
+ body_fields.to_h || body_data # rubocop:disable Lint/UselessOr
54
51
  end
55
52
 
56
53
  # @return [void]
@@ -62,7 +59,7 @@ module EacEnvs
62
59
  end
63
60
  end
64
61
 
65
- require_sub __FILE__, require_dependency: true
62
+ require_sub __FILE__, require_mode: :kernel
66
63
  end
67
64
  end
68
65
  end
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
- require 'json'
5
-
6
3
  module EacEnvs
7
4
  module Http
8
5
  class Response < ::StandardError
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
-
5
3
  module EacEnvs
6
4
  module Http
7
5
  class Response < ::StandardError
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
3
  module EacEnvs
5
4
  module Http
6
5
  class Response < ::StandardError
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
-
5
3
  module EacEnvs
6
4
  module Http
7
5
  class Response < ::StandardError
@@ -1,11 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/core_ext/hash/conversions'
4
- require 'eac_envs/http/error'
5
- require 'eac_ruby_utils/core_ext'
6
- require 'faraday'
7
- require 'json'
8
-
9
3
  module EacEnvs
10
4
  module Http
11
5
  class Response < ::StandardError
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'webrick'
4
+ # require 'webrick/https'
5
+
6
+ module EacEnvs
7
+ module Http
8
+ module Rspec
9
+ class EchoServer
10
+ class HttpServer < ::WEBrick::HTTPServer
11
+ def initialize(options)
12
+ super
13
+ mount '/', ::EacEnvs::Http::Rspec::EchoServer::WebrickServlet
14
+ end
15
+
16
+ def on_running(&block)
17
+ ::Thread.abort_on_exception = true
18
+ servlet_thread = ::Thread.new { start }
19
+ begin
20
+ sleep 0.001 while status != :Running
21
+ block.call
22
+ ensure
23
+ shutdown
24
+ servlet_thread.join
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_envs/http/request'
4
- require 'eac_ruby_utils/core_ext'
5
3
  require 'webrick'
6
4
 
7
5
  module EacEnvs
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_envs/http/request'
4
- require 'eac_envs/http/rspec/echo_server/request_processor'
5
- require 'eac_ruby_utils/core_ext'
6
3
  require 'webrick'
7
4
 
8
5
  module EacEnvs
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'addressable'
4
- require 'eac_ruby_utils/core_ext'
4
+
5
+ require 'random-port'
5
6
  require 'webrick'
6
7
  require 'webrick/https'
7
8
 
@@ -11,8 +12,8 @@ module EacEnvs
11
12
  class EchoServer
12
13
  HOSTNAME = 'localhost'
13
14
  SCHEMES = {
14
- http: { Port: 8080 },
15
- https: { Port: 8443, SSLEnable: true, SSLCertName: [['CN', HOSTNAME]] }
15
+ http: {},
16
+ https: { SSLEnable: true, SSLCertName: [['CN', HOSTNAME]] }
16
17
  }.freeze
17
18
 
18
19
  class << self
@@ -27,15 +28,8 @@ module EacEnvs
27
28
  common_constructor :scheme, :webrick_options
28
29
 
29
30
  def on_active(&block)
30
- servlet = webrick_servlet
31
- ::Thread.abort_on_exception = true
32
- servlet_thread = ::Thread.new { servlet.start }
33
- begin
34
- sleep 0.001 while servlet.status != :Running
35
- block.call
36
- ensure
37
- servlet.shutdown
38
- servlet_thread.join
31
+ on_aquired_port do
32
+ http_server.on_running(&block)
39
33
  end
40
34
  end
41
35
 
@@ -43,17 +37,30 @@ module EacEnvs
43
37
  ::Addressable::URI.new(
44
38
  scheme: scheme.to_s,
45
39
  host: ::EacEnvs::Http::Rspec::EchoServer::HOSTNAME,
46
- port: webrick_options.fetch(:Port)
40
+ port: port!
47
41
  )
48
42
  end
49
43
 
50
- private
44
+ protected
45
+
46
+ attr_accessor :port
47
+
48
+ # @return [EacEnvs::Http::Rspec::EchoServer::HttpServer]
49
+ def http_server
50
+ ::EacEnvs::Http::Rspec::EchoServer::HttpServer.new(webrick_options.merge(Port: port!))
51
+ end
52
+
53
+ def on_aquired_port(&block)
54
+ ::RandomPort::Pool.new.acquire do |port|
55
+ self.port = port
56
+ block.call
57
+ self.port = nil
58
+ end
59
+ end
51
60
 
52
- # @return [EacEnvs::Http::Rspec::EchoServer::WebrickServlet]
53
- def webrick_servlet
54
- r = ::WEBrick::HTTPServer.new(webrick_options)
55
- r.mount '/', ::EacEnvs::Http::Rspec::EchoServer::WebrickServlet
56
- r
61
+ # @return [Integer]
62
+ def port!
63
+ port.presence || raise('Port unsetted')
57
64
  end
58
65
 
59
66
  require_sub __FILE__
@@ -2,6 +2,6 @@
2
2
 
3
3
  module EacEnvs
4
4
  module Http
5
- VERSION = '0.6.0'
5
+ VERSION = '0.7.0'
6
6
  end
7
7
  end
data/lib/eac_envs/http.rb CHANGED
@@ -1,9 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
3
+ require 'eac_ruby_utils'
4
+ EacRubyUtils::RootModuleSetup.perform __FILE__
4
5
 
5
6
  module EacEnvs
6
7
  module Http
7
- require_sub __FILE__
8
8
  end
9
9
  end
10
+
11
+ require 'eac_fs'
12
+ require 'faraday'
13
+ require 'faraday/follow_redirects'
14
+ require 'faraday/gzip'
15
+ require 'faraday/multipart'
16
+ require 'faraday/retry'
17
+ require 'json'
data/lib/eac_envs.rb ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacEnvs
4
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_envs-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-03 00:00:00.000000000 Z
11
+ date: 2025-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eac_fs
@@ -16,34 +16,34 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.18'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.18.1
19
+ version: '0.19'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0.18'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 0.18.1
26
+ version: '0.19'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: eac_ruby_utils
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '0.123'
33
+ version: '0.128'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.128.3
40
37
  type: :runtime
41
38
  prerelease: false
42
39
  version_requirements: !ruby/object:Gem::Requirement
43
40
  requirements:
44
41
  - - "~>"
45
42
  - !ruby/object:Gem::Version
46
- version: '0.123'
43
+ version: '0.128'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.128.3
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: faraday
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -98,60 +98,81 @@ dependencies:
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: '1.0'
101
+ version: '1.1'
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 1.0.4
104
+ version: 1.1.1
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '1.0'
111
+ version: '1.1'
112
112
  - - ">="
113
113
  - !ruby/object:Gem::Version
114
- version: 1.0.4
114
+ version: 1.1.1
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: faraday-retry
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
119
  - - "~>"
120
120
  - !ruby/object:Gem::Version
121
- version: '2.2'
121
+ version: '2.3'
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 2.3.2
125
+ type: :runtime
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.3'
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 2.3.2
135
+ - !ruby/object:Gem::Dependency
136
+ name: random-port
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '0.7'
122
142
  - - ">="
123
143
  - !ruby/object:Gem::Version
124
- version: 2.2.1
144
+ version: 0.7.1
125
145
  type: :runtime
126
146
  prerelease: false
127
147
  version_requirements: !ruby/object:Gem::Requirement
128
148
  requirements:
129
149
  - - "~>"
130
150
  - !ruby/object:Gem::Version
131
- version: '2.2'
151
+ version: '0.7'
132
152
  - - ">="
133
153
  - !ruby/object:Gem::Version
134
- version: 2.2.1
154
+ version: 0.7.1
135
155
  - !ruby/object:Gem::Dependency
136
156
  name: eac_ruby_gem_support
137
157
  requirement: !ruby/object:Gem::Requirement
138
158
  requirements:
139
159
  - - "~>"
140
160
  - !ruby/object:Gem::Version
141
- version: '0.10'
161
+ version: '0.12'
142
162
  type: :development
143
163
  prerelease: false
144
164
  version_requirements: !ruby/object:Gem::Requirement
145
165
  requirements:
146
166
  - - "~>"
147
167
  - !ruby/object:Gem::Version
148
- version: '0.10'
168
+ version: '0.12'
149
169
  description:
150
170
  email:
151
171
  executables: []
152
172
  extensions: []
153
173
  extra_rdoc_files: []
154
174
  files:
175
+ - lib/eac_envs.rb
155
176
  - lib/eac_envs/http.rb
156
177
  - lib/eac_envs/http/error.rb
157
178
  - lib/eac_envs/http/request.rb
@@ -164,8 +185,8 @@ files:
164
185
  - lib/eac_envs/http/response/headers.rb
165
186
  - lib/eac_envs/http/response/links.rb
166
187
  - lib/eac_envs/http/response/statuses.rb
167
- - lib/eac_envs/http/rspec.rb
168
188
  - lib/eac_envs/http/rspec/echo_server.rb
189
+ - lib/eac_envs/http/rspec/echo_server/http_server.rb
169
190
  - lib/eac_envs/http/rspec/echo_server/request_processor.rb
170
191
  - lib/eac_envs/http/rspec/echo_server/webrick_servlet.rb
171
192
  - lib/eac_envs/http/version.rb
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacEnvs
6
- module Http
7
- module Rspec
8
- require_sub __FILE__
9
- end
10
- end
11
- end