lib/rubycritic/command_factory.rb
# frozen_string_literal: true require 'rubycritic/configuration' module RubyCritic class CommandFactory COMMAND_CLASS_MODES = %i[version help ci compare default].freeze def self.create(options = {}) Config.set(options) command_class(Config.mode).new(options) end def self.command_class(mode) mode = mode.to_s.split('_').first.to_sym if COMMAND_CLASS_MODES.include? mode require "rubycritic/commands/#{mode}" Command.const_get(mode.capitalize) else require 'rubycritic/commands/default' Command::Default end end end end