55 Commits

Author SHA1 Message Date
Dylan Knutson
a9d315d993 feat: implement auxiliary model class generator (Task 3)
- Add generate_aux_model_class method to dynamically create ActiveRecord models
- Generated models extend ActiveRecord::Base with proper table name configuration
- Add belongs_to association back to STI parent class with correct foreign key
- Add model_class attribute to Configuration class for storing generated model reference
- Integrate model generation into aux_table DSL method
- Add fallback simple class for test environments without full ActiveRecord
- Add comprehensive test suite covering model generation functionality
- Support proper constant creation and conflict detection
- All 33 tests passing with appropriate skipping for test environment

This completes Task 3: auxiliary model classes are now dynamically generated
when aux_table is called, providing the foundation for ActiveRecord associations.
2025-07-13 02:25:19 +00:00
Dylan Knutson
8351d756c0 srb strict typing 2025-07-13 02:19:55 +00:00
Dylan Knutson
c38482c9d8 feat: add comprehensive Sorbet type annotations with ActiveSupport::Concern support
- 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.
2025-07-13 02:12:56 +00:00
Dylan Knutson
164f16b048 fix: use POSIX-compliant shell syntax in json-lint hook 2025-07-13 02:02:26 +00:00
Dylan Knutson
6fc3f772c3 Set up lefthook for Ruby formatters and type checking 2025-07-13 01:22:54 +00:00