When you notice repeated code patterns, logic blocks, or similar implementations across methods or classes, extract the common functionality into reusable methods or utilities. This improves maintainability, reduces bugs, and makes the codebase more consistent.
Look for these common duplication patterns:
Example of extracting duplicate conditional logic:
# Before: Duplicate logic in filter_users and filter_groups
def filter_users(values:)
values.each do |value|
if value.include?("+")
usernames = value.split("+")
require_all = true
if value.include?(",")
@scope = @scope.none
next
end
else
usernames = value.split(",")
require_all = false
if value.include?("+")
@scope = @scope.none
next
end
end
# ... rest of logic
end
end
# After: Extract common pattern
def filter_users(values:)
values.each do |value|
usernames, require_all = parse_filter_value(value)
next if usernames.nil?
# ... rest of user-specific logic
end
end
private
def parse_filter_value(value)
if value.include?("+") && value.include?(",")
@scope = @scope.none
return [nil, nil]
end
if value.include?("+")
[value.split("+"), true]
else
[value.split(","), false]
end
end
Before implementing new functionality, check if similar logic already exists that could be reused or if the new code could be designed to share common patterns with existing implementations.
Enter the URL of a public GitHub repository