51 lines
2.0 KiB
Ruby
51 lines
2.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require_relative "lib/has_aux_table"
|
|
|
|
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
|