# frozen_string_literal: true ############################################################################## # Dox Plugin ############################################################################## begin require 'dox' require 'pathname' RSpec.configure do |config| config.after(:each, :dox) do |example| example.metadata[:request] = request example.metadata[:response] = response end end api_docs_folder = Pathname.pwd.join('docs', 'api') api_docs_header = api_docs_folder.join('header.md') api_docs_folder.mkpath api_docs_folder.glob('**/*.rb').each { |f| require f } titleized_application_name = Rails .application .class .name .split('::')[0] .titleize http_settings_file = Pathname.pwd.join('config', 'settings', 'http.yml') host = if http_settings_file.exist? http_settings = YAML.load(http_settings_file.read) # rubocop:disable Security/YAMLLoad http_settings['production']['http']['base_url'] else 'http://api.lvh.me:5000' end unless api_docs_header.exist? api_docs_header.write(<<~HEREDOC, :mode => 'w') FORMAT: 1A HOST: #{host} # #{titleized_application_name} HEREDOC end Dox.configure do |config| config.header_file_path = api_docs_header config.desc_folder_path = api_docs_folder # config.headers_whitelist = ['Accept', 'X-Auth-Token'] end rescue LoadError end