# frozen_string_literal: true

require_relative "lib/has_aux_table/version"

Gem::Specification.new do |spec|
  spec.name = "has_aux_table"
  spec.version = HasAuxTable::VERSION
  spec.authors = ["Dylan Knutson"]
  spec.email = ["dymk@dymk.co"]

  spec.summary =
    "Extend ActiveRecord STI with auxiliary tables for subclass-specific columns"
  spec.description =
    "ActiveRecord auxiliary table gem allows Single Table Inheritance (STI) subclasses to define auxiliary tables with subclass-specific columns and indexes. This reduces schema bloat, improves query performance, and provides transparent attribute access while maintaining ActiveRecord's familiar API."
  spec.homepage = "https://git.dy.mk/dymk/has_aux_table.git"
  spec.license = "MIT"
  spec.required_ruby_version = ">= 3.1.0"

  spec.metadata["allowed_push_host"] = "https://git.dy.mk"

  spec.metadata["homepage_uri"] = spec.homepage
  spec.metadata["source_code_uri"] = "https://git.dy.mk/dymk/has_aux_table.git"
  spec.metadata[
    "changelog_uri"
  ] = "https://git.dy.mk/dymk/has_aux_table/src/branch/main/CHANGELOG.md"

  # Specify which files should be added to the gem when it is released.
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
  gemspec = File.basename(__FILE__)
  spec.files =
    IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls|
      ls
        .readlines("\x0", chomp: true)
        .reject do |f|
          (f == gemspec) ||
            f.start_with?(*%w[bin/ test/ spec/ features/ .git appveyor Gemfile])
        end
    end
  spec.bindir = "exe"
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
  spec.require_paths = ["lib"]

  # Dependencies for ActiveRecord and ActiveSupport
  spec.add_dependency "activerecord", ">= 7.0"
  spec.add_dependency "activesupport", ">= 7.0"
  spec.add_dependency "sorbet-runtime", "~> 0.5"

  # For more information and examples about making a new gem, check out our
  # guide at: https://bundler.io/guides/creating_gem.html
end
