- Add sorbet-runtime dependency to gemspec - Add comprehensive type annotations to Configuration class - Create RBI file with mixes_in_class_methods for proper class method typing - Add ActiveSupport::Concern shim to handle included and class_methods DSL - Add parameter validation for edge cases when RBI bypasses runtime checks - Update tests to expect correct error messages from manual validation - All 26 tests passing with full type safety - Sorbet type checker passes with no errors This implements the ActiveSupport::Concern DSL generator approach from https://github.com/Shopify/tapioca/pull/360 to properly handle Sorbet type checking with ActiveSupport::Concern modules.
51 lines
1.8 KiB
Ruby
51 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require_relative "lib/active_record/aux_table"
|
|
|
|
Gem::Specification.new do |spec|
|
|
spec.name = "active-record-aux-table"
|
|
spec.version = ActiveRecord::AuxTable::VERSION
|
|
spec.authors = ["Dylan Knutson"]
|
|
spec.email = ["dymk@dymk.co"]
|
|
|
|
spec.summary = "TODO: Write a short summary, because RubyGems requires one."
|
|
spec.description = "TODO: Write a longer description or delete this line."
|
|
spec.homepage = "TODO: Put your gem's website or public repo URL here."
|
|
spec.license = "MIT"
|
|
spec.required_ruby_version = ">= 3.1.0"
|
|
|
|
spec.metadata[
|
|
"allowed_push_host"
|
|
] = "TODO: Set to your gem server 'https://example.com'"
|
|
|
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
spec.metadata[
|
|
"source_code_uri"
|
|
] = "TODO: Put your gem's public repo URL here."
|
|
spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
|
|
|
# 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
|