Skip to content

Commit

Permalink
Refactor global DEBUG_ENABLED to module-based configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
ny1020 committed Apr 19, 2024
1 parent 4e3b8d2 commit aa3c04b
Showing 1 changed file with 31 additions and 21 deletions.
52 changes: 31 additions & 21 deletions lib/rspec/openapi.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,17 @@
require 'rspec/openapi/extractors'
require 'rspec/openapi/extractors/rack'

if ENV['OPENAPI']
DEBUG_ENABLED = ['', '1', 'true'].include?(ENV['DEBUG']&.downcase)
module RSpec::OpenAPI
class Config
class << self
attr_accessor :debug_enabled

begin
require 'hanami'
rescue LoadError
warn 'Hanami not detected' if DEBUG_ENABLED
else
require 'rspec/openapi/extractors/hanami'
def load_environment_settings
@debug_enabled = ['', '1', 'true'].include?(ENV['DEBUG']&.downcase)
end
end
end

begin
require 'rails'
rescue LoadError
warn 'Rails not detected' if DEBUG_ENABLED
else
require 'rspec/openapi/extractors/rails'
end
end

require 'rspec/openapi/minitest_hooks' if Object.const_defined?('Minitest')
require 'rspec/openapi/rspec_hooks' if ENV['OPENAPI'] && Object.const_defined?('RSpec')

module RSpec::OpenAPI
@path = 'doc/openapi.yaml'
@title = File.basename(Dir.pwd)
@comment = nil
Expand Down Expand Up @@ -84,3 +71,26 @@ class << self
attr_reader :config_filename
end
end

if ENV['OPENAPI']
RSpec::OpenAPI::Config.load_environment_settings

begin
require 'hanami'
rescue LoadError
warn 'Hanami not detected' if RSpec::OpenAPI::Config.debug_enabled
else
require 'rspec/openapi/extractors/hanami'
end

begin
require 'rails'
rescue LoadError
warn 'Rails not detected' if RSpec::OpenAPI::Config.debug_enabled
else
require 'rspec/openapi/extractors/rails'
end
end

require 'rspec/openapi/minitest_hooks' if Object.const_defined?('Minitest')
require 'rspec/openapi/rspec_hooks' if ENV['OPENAPI'] && Object.const_defined?('RSpec')

Check notice

Code scanning / Rubocop

Checks trailing blank lines and final newline. Note

Layout/TrailingEmptyLines: Final newline missing.

0 comments on commit aa3c04b

Please sign in to comment.