Skip to content

refactor: redesign Processor extension point and add RSpec test suite#14

Open
zhgchgli0718 wants to merge 1 commit into
mainfrom
claude/refactor-processor-design-rNhny
Open

refactor: redesign Processor extension point and add RSpec test suite#14
zhgchgli0718 wants to merge 1 commit into
mainfrom
claude/refactor-processor-design-rNhny

Conversation

@zhgchgli0718
Copy link
Copy Markdown
Member

Replace the eval-based Processor dispatch in bin/ZReviewTender with a
proper Registry + Loader so users can ship processors as external
files/gems without forking. Strengthen the Processor base class with a
real abstract contract (#process_reviews + #validate_config!) and a
FilterableProcessor mixin so the six built-ins stop copy-pasting
keywords/ratings/territories filtering. Decouple ReviewFetcher from
SlackProcessor by routing the welcome-message hook through a
WelcomeMessageCapable marker module, and stop GoogleAPI from
accidentally inheriting from Processor.

Legacy YAML ({ClassName: { class: ..., enable: true, ... }}) and
processors that override processReviews (camelCase) keep working with
a one-line deprecation warning each. Add RSpec + WebMock with 66 specs
covering the framework and all six built-in processors.

Replace the eval-based Processor dispatch in bin/ZReviewTender with a
proper Registry + Loader so users can ship processors as external
files/gems without forking. Strengthen the Processor base class with a
real abstract contract (#process_reviews + #validate_config!) and a
FilterableProcessor mixin so the six built-ins stop copy-pasting
keywords/ratings/territories filtering. Decouple ReviewFetcher from
SlackProcessor by routing the welcome-message hook through a
WelcomeMessageCapable marker module, and stop GoogleAPI from
accidentally inheriting from Processor.

Legacy YAML (`{ClassName: { class: ..., enable: true, ... }}`) and
processors that override `processReviews` (camelCase) keep working with
a one-line deprecation warning each. Add RSpec + WebMock with 66 specs
covering the framework and all six built-in processors.
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