require “zeitwerk”

module <%= project_class_name %>

class Autoloader
  class Inflector < Zeitwerk::Inflector
    def camelize(basename, _abspath)
      map = { cli: "CLI", version: "VERSION" }
      map[basename.to_sym] || super
    end
  end

  class << self
    def setup
      loader = Zeitwerk::Loader.new
      loader.inflector = Inflector.new
      loader.push_dir(File.dirname(__dir__)) # lib

<% if project_name.include?('-') -%>

loader.ignore("#{File.dirname(__dir__)}/<%= project_name %>.rb")

<% end -%>

      loader.setup
    end
  end
end

end