Skip to content

Waiters #292

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 50 commits into from
May 21, 2025
Merged

Waiters #292

merged 50 commits into from
May 21, 2025

Conversation

richardwang1124
Copy link
Contributor

@richardwang1124 richardwang1124 commented Apr 24, 2025

Description of changes:
Support the #waitable trait with waiters. Customers can use code generated waiters through client.wait_until(:waiter_name, params, options).

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

end
expect_any_instance_of(waiter).to receive(:delay).and_wrap_original do |m, *args|
delay = m.call(*args)
expect(delay).to equal(5)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test case is an example of the question I had in my doc regarding waiter retries. Because the remaining time (5) minus the delay (value between min delay of 3 and max delay of 4) is less than the min delay, the final delay value is set to be equal to the remaining time, which is 5. However, this exceeds the max delay. Is this expected behavior?

Copy link
Contributor

@mullermp mullermp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good start!

Copy link
Contributor

@jterapin jterapin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Great work so far - mini-review since you are working through changes and etc.

Copy link
Contributor

@mullermp mullermp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Getting better. Sorry for the barrage of comments.

Copy link
Contributor

@mullermp mullermp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Clean ups are looking good. This should be very close.

# @api private
module Waiters
<% waiters.each do |waiter| -%>
<% if waiter.deprecated -%>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Up to you - you can always have a method deprecated? instead of attribute accessor deprecated - since you never actually need to retrieve any nested value of deprecated, it's simply a boolean. That's more conventional.

@@ -0,0 +1,38 @@
$version: "2"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit - name of folder waiters

@richardwang1124 richardwang1124 merged commit 367738e into decaf May 21, 2025
17 checks passed
@richardwang1124 richardwang1124 deleted the feature/waiters branch May 21, 2025 23:05
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.

3 participants