Skip to content

Conversation

@mensfeld
Copy link
Collaborator

@mensfeld mensfeld commented Nov 4, 2025

This is a major reorganization that improves code structure and follows Rails conventions. Changes are atomic and must ship together.

Test Infrastructure Changes:

  • Move unit tests from spec/shoryuken/ to spec/lib/shoryuken/ (mirrors lib/)
  • Move Rails version gemfiles from gemfiles/ to spec/gemfiles/
  • Remove Appraisal gem in favor of custom multi-version testing
  • Update RSpec, Rake, and Renovate configurations for new structure

ActiveJob Adapter Changes:

  • Move adapters to Rails-compliant paths: lib/active_job/queue_adapters/
  • Extract JobWrapper to lib/shoryuken/active_job/job_wrapper.rb
  • Update all requires and constant references
  • Change JobWrapper constant: ActiveJob::QueueAdapters::ShoryukenAdapter::JobWrapper → Shoryuken::ActiveJob::JobWrapper
  • Add Rails 8.1 compatibility (stopping? method for Continuations)

Configuration Updates:

  • Enhanced SimpleCov configuration with groups and minimum coverage
  • Updated zeitwerk ignore pattern for new ActiveJob location
  • Add YARD documentation to configuration methods

This reorganization provides:

  • Clearer code structure matching Rails conventions
  • Better test organization mirroring lib/ structure
  • Improved ActiveJob adapter discoverability
  • Foundation for future enhancements

Breaking Changes:

  • JobWrapper constant path changed (if users reference it directly)
  • Test file locations changed (CI/tooling may need updates)
  • Gemfile organization changed (Appraisal removed)

Test Results: 512 examples, 0 failures, 90.43% coverage

This is a major reorganization that improves code structure and follows
Rails conventions. Changes are atomic and must ship together.

Test Infrastructure Changes:
- Move unit tests from spec/shoryuken/ to spec/lib/shoryuken/ (mirrors lib/)
- Move Rails version gemfiles from gemfiles/ to spec/gemfiles/
- Remove Appraisal gem in favor of custom multi-version testing
- Update RSpec, Rake, and Renovate configurations for new structure

ActiveJob Adapter Changes:
- Move adapters to Rails-compliant paths: lib/active_job/queue_adapters/
- Extract JobWrapper to lib/shoryuken/active_job/job_wrapper.rb
- Update all requires and constant references
- Change JobWrapper constant: ActiveJob::QueueAdapters::ShoryukenAdapter::JobWrapper
  → Shoryuken::ActiveJob::JobWrapper
- Add Rails 8.1 compatibility (stopping? method for Continuations)

Configuration Updates:
- Enhanced SimpleCov configuration with groups and minimum coverage
- Updated zeitwerk ignore pattern for new ActiveJob location
- Add YARD documentation to configuration methods

This reorganization provides:
- Clearer code structure matching Rails conventions
- Better test organization mirroring lib/ structure
- Improved ActiveJob adapter discoverability
- Foundation for future enhancements

Breaking Changes:
- JobWrapper constant path changed (if users reference it directly)
- Test file locations changed (CI/tooling may need updates)
- Gemfile organization changed (Appraisal removed)

Test Results: 512 examples, 0 failures, 90.43% coverage
@coderabbitai
Copy link

coderabbitai bot commented Nov 4, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/reorganize-tests-and-activejob

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants