module Fictium::RSpec::Autocomplete::Example
Public Class Methods
process_http_response(example, response)
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 6 def process_http_response(example, response) example.response ||= {} example.response.merge!( status: response.status, body: response.body, content_type: response.media_type, header: filter_header(response.header.to_h) ) process_http_request(example, response.request) return unless example.default? autocomplete_params.extract_from_response(example, response) end
Private Class Methods
autocomplete_params()
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 22 def autocomplete_params Fictium::RSpec::Autocomplete::Params end
extract_method(example, request)
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 45 def extract_method(example, request) action = example.action action.method = request.method.downcase.to_sym if action.method.blank? end
filter_header(header)
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 50 def filter_header(header) valid_keys = header.keys.select { |name| valid_header?(name) } header.slice(*valid_keys).transform_keys do |key| (key.start_with?('HTTP_') ? key.sub('HTTP_', '') : key).sub('_', '-') end end
ignored_header_groups()
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 70 def ignored_header_groups Fictium.configuration.ignored_header_groups end
out_of_excluded_headers?(name)
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 66 def out_of_excluded_headers?(name) Fictium.configuration.ignored_header_values.exclude?(name) end
out_of_header_group?(name)
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 62 def out_of_header_group?(name) ignored_header_groups.none? { |group| name.start_with?(group) } end
process_base_request(request)
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 35 def process_base_request(request) { content_type: request.content_type, body: request.body.string, header: filter_header(request.headers.to_h), path_parameters: request.path_parameters.except(:controller, :action), query_parameters: request.query_parameters } end
process_http_request(example, request)
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 26 def process_http_request(example, request) example.request ||= {} example.request.merge!(process_base_request(request)) extract_method(example, request) return unless example.default? autocomplete_params.extract_from_request(example.action, request) end
valid_header?(name)
click to toggle source
# File lib/fictium/rspec/autocomplete/example.rb, line 57 def valid_header?(name) downcase_name = name.downcase out_of_header_group?(downcase_name) && out_of_excluded_headers?(downcase_name) end