Skip to content

Commit 5f48a26

Browse files
cardmagicclaude
andcommitted
refactor: inline the redrive filter validation
Two public helpers validated one argument each, with one caller and a generated signature apiece. They are guard clauses in `redrive` now. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 4538628 commit 5f48a26

2 files changed

Lines changed: 9 additions & 24 deletions

File tree

‎lib/solid_objects/dead_letter_scope.rb‎

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -51,33 +51,24 @@ def retry(identifier_value, authorization_context: nil)
5151

5252
# @rbs (?actor_type: String?, ?failed_after: untyped, ?limit: Integer?, ?authorization_context: untyped) -> RedriveTask
5353
def redrive(actor_type: nil, failed_after: nil, limit: nil, authorization_context: nil)
54+
if failed_after && !failed_after.respond_to?(:utc)
55+
raise ArgumentError, "failed_after must be a time"
56+
end
57+
if limit && !(limit.is_a?(Integer) && limit.positive?)
58+
raise ArgumentError, "limit must be a positive integer"
59+
end
60+
5461
SolidObjects.redrives.start(
5562
scope: self,
5663
filters: {
5764
"actor_type" => actor_type,
58-
"failed_after" => failed_after_filter(failed_after),
59-
"limit" => limit_filter(limit)
65+
"failed_after" => failed_after&.utc&.iso8601(6),
66+
"limit" => limit
6067
},
6168
authorization_context:
6269
)
6370
end
6471

65-
# @rbs (untyped) -> String?
66-
def failed_after_filter(failed_after)
67-
return nil if failed_after.nil?
68-
raise ArgumentError, "failed_after must be a time" unless failed_after.respond_to?(:utc)
69-
70-
failed_after.utc.iso8601(6)
71-
end
72-
73-
# @rbs (untyped) -> Integer?
74-
def limit_filter(limit)
75-
return nil if limit.nil?
76-
return limit if limit.is_a?(Integer) && limit.positive?
77-
78-
raise ArgumentError, "limit must be a positive integer"
79-
end
80-
8172
# @rbs () -> ActiveRecord::Relation[untyped]
8273
def dead
8374
model.where(status: DEAD)

‎sig/generated/lib/solid_objects/dead_letter_scope.rbs‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,6 @@ module SolidObjects
3131
# @rbs (?actor_type: String?, ?failed_after: untyped, ?limit: Integer?, ?authorization_context: untyped) -> RedriveTask
3232
def redrive: (?actor_type: String?, ?failed_after: untyped, ?limit: Integer?, ?authorization_context: untyped) -> RedriveTask
3333

34-
# @rbs (untyped) -> String?
35-
def failed_after_filter: (untyped) -> String?
36-
37-
# @rbs (untyped) -> Integer?
38-
def limit_filter: (untyped) -> Integer?
39-
4034
# @rbs () -> ActiveRecord::Relation[untyped]
4135
def dead: () -> ActiveRecord::Relation[untyped]
4236

0 commit comments

Comments
 (0)