Class: Swagcov::OpenapiFiles

Inherits:
Object
  • Object
show all
Defined in:
lib/swagcov/openapi_files.rb

Instance Method Summary collapse

Constructor Details

#initialize(filepaths:) ⇒ OpenapiFiles

Returns a new instance of OpenapiFiles.



5
6
7
8
9
# File 'lib/swagcov/openapi_files.rb', line 5

def initialize filepaths:
  @filepaths = filepaths
  @openapi_paths = load_yamls
  @openapi_path_keys = @openapi_paths.keys
end

Instance Method Details

#find_response_keys(path:, route_verb:) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/swagcov/openapi_files.rb', line 11

def find_response_keys path:, route_verb:
  # replace :id with {id}
  regex = ::Regexp.new("^#{path.gsub(%r{:[^/]+}, '\\{[^/]+\\}')}?$")

  matching_paths_key = @openapi_path_keys.grep(regex).first
  matching_request_method_key = @openapi_paths.dig(matching_paths_key, route_verb.downcase)

  matching_request_method_key["responses"].keys.map(&:to_s).sort if matching_request_method_key
end