Skip to content

Extract validation methods in Statements module#184

Merged
teoljungberg merged 4 commits intomasterfrom
statements-module-cleanup
Dec 11, 2025
Merged

Extract validation methods in Statements module#184
teoljungberg merged 4 commits intomasterfrom
statements-module-cleanup

Conversation

@teoljungberg
Copy link
Owner

@teoljungberg teoljungberg commented Oct 31, 2025

Refactor the Statements module to reduce code duplication and improve
maintainability by extracting repeated validation and SQL resolution logic.

Changes:

  • Extract error message constants
  • Extract validation methods
  • Extract resolve_sql_definition method to handle SQL definition resolution
  • Simplify conditional logic (e.g., version ||= 1 instead of if/nil check)
  • Remove unused _on variable in create_trigger

Refactor the Statements module to reduce code duplication and improve
maintainability by extracting repeated validation and SQL resolution logic.

Changes:
- Extract error message constants:
  * VERSION_OR_SQL_DEFINITION_REQUIRED
  * VERSION_AND_SQL_DEFINITION_EXCLUSIVE
- Extract validation methods:
  * validate_version_or_sql_definition_present!
  * validate_version_and_sql_definition_exclusive!
- Extract resolve_sql_definition method to handle SQL definition resolution
- Apply extracted methods across create_function, update_function,
  create_trigger, and update_trigger
- Simplify conditional logic (e.g., version ||= 1 instead of if/nil check)
- Remove unused _on variable in create_trigger

Benefits:
- DRY: Validation logic defined once, used in multiple places
- Consistency: Same validation behavior across all methods
- Maintainability: Changes to validation logic only need to happen in one place
- Testability: Private methods can be tested independently if needed
@teoljungberg teoljungberg mentioned this pull request Oct 31, 2025
@teoljungberg teoljungberg merged commit 6d0a89b into master Dec 11, 2025
9 checks passed
@teoljungberg teoljungberg deleted the statements-module-cleanup branch December 11, 2025 09:22
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.

1 participant