Skip to content

Commit 06a2a19

Browse files
committed
Refactor header util methods
1 parent 318ddc1 commit 06a2a19

File tree

4 files changed

+27
-31
lines changed

4 files changed

+27
-31
lines changed

lib/rspec_api_documentation.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module RspecApiDocumentation
1717
autoload :ExampleGroup
1818
autoload :Index
1919
autoload :TestClient
20+
autoload :Headers
2021
end
2122

2223
autoload :DSL
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module RspecApiDocumentation
2+
module Headers
3+
def env_to_headers(env)
4+
headers = {}
5+
env.each do |key, value|
6+
# HTTP_ACCEPT_CHARSET => Accept-Charset
7+
if key =~ /^(HTTP_|CONTENT_TYPE)/
8+
header = key.gsub(/^HTTP_/, '').titleize.split.join("-")
9+
headers[header] = value
10+
end
11+
end
12+
headers
13+
end
14+
15+
def format_headers(headers)
16+
headers.map do |key, value|
17+
"#{key}: #{value}"
18+
end.join("\n")
19+
end
20+
end
21+
end

lib/rspec_api_documentation/test_client.rb

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
module RspecApiDocumentation
44
class TestClient < Struct.new(:context, :options)
5+
include Headers
6+
57
delegate :example, :app, :to => :context
68
delegate :metadata, :to => :example
79
delegate :last_request, :last_response, :to => :rack_test_session
@@ -100,24 +102,6 @@ def document_example(method, action, params)
100102
metadata[:requests] << request_metadata
101103
end
102104

103-
def env_to_headers(env)
104-
headers = {}
105-
env.each do |key, value|
106-
# HTTP_ACCEPT_CHARSET => Accept-Charset
107-
if key =~ /^(HTTP_|CONTENT_TYPE)/
108-
header = key.gsub(/^HTTP_/, '').titleize.split.join("-")
109-
headers[header] = value
110-
end
111-
end
112-
headers
113-
end
114-
115-
def format_headers(headers)
116-
headers.map do |key, value|
117-
"#{key}: #{value}"
118-
end.join("\n")
119-
end
120-
121105
def format_query_hash(query_hash)
122106
return if query_hash.blank?
123107
query_hash.map do |key, value|

lib/rspec_api_documentation/test_server.rb

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module RspecApiDocumentation
22
class TestServer < Struct.new(:context)
3+
include Headers
4+
35
delegate :example, :last_request, :last_response, :to => :context
46
delegate :metadata, :to => :example
57

@@ -11,7 +13,7 @@ def call(env)
1113
request_metadata[:request_method] = env["REQUEST_METHOD"]
1214
request_metadata[:request_path] = env["PATH_INFO"]
1315
request_metadata[:request_body] = prettify_json(env["rack.input"].read)
14-
request_metadata[:request_headers] = headers(env)
16+
request_metadata[:request_headers] = format_headers(env_to_headers(env))
1517

1618
metadata[:requests] ||= []
1719
metadata[:requests] << request_metadata
@@ -21,18 +23,6 @@ def call(env)
2123

2224
private
2325

24-
def headers(env)
25-
env.
26-
select do |k, v|
27-
k =~ /^(HTTP_|CONTENT_TYPE)/
28-
end.
29-
map do |key, value|
30-
# HTTP_ACCEPT_CHARSET => Accept-Charset
31-
formatted_key = key.gsub(/^HTTP_/, '').titleize.split.join("-")
32-
"#{formatted_key}: #{value}"
33-
end.join("\n")
34-
end
35-
3626
def prettify_json(json)
3727
begin
3828
JSON.pretty_generate(JSON.parse(json))

0 commit comments

Comments
 (0)