Skip to content

feat: v0.15.0 — Configurable Retry/Backoff & Thor CLI#23

Merged
scarver2 merged 4 commits into
masterfrom
0.15.0
Apr 1, 2026
Merged

feat: v0.15.0 — Configurable Retry/Backoff & Thor CLI#23
scarver2 merged 4 commits into
masterfrom
0.15.0

Conversation

@scarver2
Copy link
Copy Markdown
Owner

@scarver2 scarver2 commented Apr 1, 2026

Summary

  • Retry/Backoff: Client now accepts max_retries: (default: 2) and retry_on_rate_limit: (default: true). Connection uses exponential backoff with ±50% jitter (backoff_factor: 2, interval_randomness: 0.5)
  • CLI: bin/printavo executable powered by Thor:
    • printavo customers [--first N]
    • printavo orders [--first N] (default subcommand)
    • printavo orders find ID
    • Reads PRINTAVO_EMAIL + PRINTAVO_TOKEN from environment
  • Gemspec fixes: thor ~> 1.0 added as runtime dep; spec.files now includes .graphql files and bin/ (previously missing from published gem)

Test plan

  • bundle exec rspec — 576 examples, 0 failures, 100% line coverage
  • bundle exec rubocop — 197 files inspected, no offenses

🤖 Generated with Claude Code

scarver2 and others added 4 commits April 1, 2026 07:35
Connection: exponential backoff with ±50% jitter (backoff_factor: 2,
interval_randomness: 0.5); configurable max_retries and retry_on_rate_limit.
Client: surfaces max_retries: and retry_on_rate_limit: kwargs.
CLI: Thor-based printavo executable — customers, orders list/find commands.
Gemspec: add thor runtime dep, fix spec.files to include .graphql + bin/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Without this, `require 'printavo/cli'` raises LoadError when the
executable is invoked directly (outside of bundler). Standard Thor
gem pattern: $LOAD_PATH.unshift(File.join(__dir__, '..', 'lib')).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- printavo version now prints the gem version
- exit_on_failure? = true silences Thor deprecation warning on error paths

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@scarver2 scarver2 merged commit 2a4e3da into master Apr 1, 2026
4 checks passed
@scarver2 scarver2 deleted the 0.15.0 branch April 5, 2026 21:25
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