All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Client configuration with keyword arguments and block-based setup
- API version support (v1 sync binary, v2 async Job)
- Conversion methods:
url_to_pdf/url_to_image— convert URLs to PDF or imagehtml_to_pdf/html_to_image— convert Base64-encoded HTMLtemplate_to_pdf/template_to_image— render server-side templatesdocx_to_pdf/docx_to_html— convert DOCX documents (multipart upload)pdf_to_docx— convert PDF to DOCX (multipart upload)merge_pdfs— merge multiple PDFs from URLs
- Data management:
list_jobs/get_job— query conversion jobslist_assets/get_asset— query generated assetslist_storage/get_storage/add_storage/delete_storage— manage S3 storage configsget_account— retrieve account informationget_status— API health checklist_templates/get_template— browse public template gallery
- Utility methods:
wait_for_job— poll for job completion with configurable interval and timeoutdownload_job_result— download binary output from completed jobsCloudLayerio::Util::HtmlUtil.encode_html— Base64-encode HTML for the API
- HTTP transport:
- Retry logic with exponential backoff and jitter (429, 500-504)
- Multipart file upload support
- Redirect following for presigned S3 URLs
- Configurable timeout, max retries, custom headers
- Error handling:
AuthError(401/403),RateLimitError(429 with retry_after),ApiError(4xx/5xx)TimeoutError,NetworkError,ValidationError,ConfigError
- Type system:
- Frozen constant modules (PdfFormat, ImageType, JobStatus, JobType, WaitUntilOption)
- Option classes with keyword arguments and camelCase JSON serialization
- Response classes with
from_hashdeserialization NOT_SETsentinel for three-stateemulate_media_type
- Client-side validation for all endpoints
- RSpec test suite with >97% coverage