108 Commits
Author SHA1 Message Date
Brooke Kuhlmann d5d80955a4 Updated version
Includes updates to the recipes endpoint.

Milestone: minor
0.10.0
2026-01-22 15:20:37 -07:00
Brooke Kuhlmann 268ac8d4e0 Fixed recipe endpoint to use sort key
Use of `sort-by` -- as provied by the API -- is awkward so this simplifies usage so you can use the `sort` key as a symbol which is consistent with existing keys.

Milestone: minor
2026-01-22 15:20:06 -07:00
Brooke Kuhlmann 97bf0e3c30 Updated recipe model to distinquish between data and meta information
Necessary to prevent the API design from infecting this implementation by clarifying the difference between data and metadata information (like how a basic JSON Data API response should be structured).

Milestone: minor
2026-01-22 15:19:53 -07:00
Brooke Kuhlmann 9cd951f908 Fixed recipe entry model to be data model
Necessary to add clarity to what this model represents as `Entry` was slightly confusing, and now that there is no conflict with native `Data` objects, we can use `Data` for the model name.

Milestone: minor
2026-01-22 15:19:06 -07:00
Brooke Kuhlmann f59688fee5 Added recipe meta model
Necessary to handle API response metadata so we can have distinct models for data and metadata.

RuboCop has been updated to ignore the parameters because RuboCop still doesn't have the ability to distinguish between whole value objects and standard objects (and we need safe defaults in this case).

Milestone: minor
2026-01-22 15:18:46 -07:00
Brooke Kuhlmann ca9ac028e6 Refactored models to reference native Ruby Data objects
Necessary to ensure we reference native Ruby data objects versus the new data objects own by this gem when dealing with JSON Data APIs.

Milestone: patch
2026-01-22 15:17:52 -07:00
Brooke Kuhlmann 775c228bb5 Updated version 0.9.0 2026-01-15 09:24:35 -07:00
Brooke Kuhlmann c9f5ad8d83 Added recipes endpoint documentation
Necessary to document this new endpoint and clean up client syntax usage.

Milestone: minor
2026-01-15 09:18:34 -07:00
Brooke Kuhlmann cbe2478cdb Updated client to inject endpoints and dynamically build instances
Necessary to ensure each endpoint is properly configured with settings unique to the client instance instead of sharing global settings. This cropped up due to needing to deal with multiple TRMNL API server routes when they should be a single route.

Milestone: minor
2026-01-15 09:18:34 -07:00
Brooke Kuhlmann 26b2564b40 Updated container settings to be fresh
Necessary to ensure settings are unique per instance because, unfortunately, we have to deal with talking to two different TRMNL API endpoints now (i.e. `https://usetrmnl.com` and `https://usetrmnl.com/api`).

Milestone: patch
2026-01-15 09:18:34 -07:00
Brooke Kuhlmann 7ea4e06caa Added recipe endpoint
Necessary to perform API requests and acquire models for further processing. This also wires up the client and exposes the endpoint for immediate use.

Milestone: minor
2026-01-15 09:18:34 -07:00
Brooke Kuhlmann d0d515a948 Added recipe model
Necessary to model the data from the Recipes API. This leverages the `Entry` model which encapsulates the `data` attribute while the other keys are pagination related.

Milestone: minor
2026-01-15 09:18:34 -07:00
Brooke Kuhlmann 9a8613a048 Added recipe entry model
Necessary to model recipe data. A `Struct` is used because some fields are optional. This will soon be used by the recipe model (soon to be added).

Milestone: minor
2026-01-15 09:18:33 -07:00
Brooke Kuhlmann 097d77369d Added recipe statistics model
Necessary to model the statistics of the response. Will soon be used by the recipe model (soon to be used).

Milestone: minor
2026-01-15 09:18:33 -07:00
Brooke Kuhlmann d4209e5f01 Added recipe author model
Necessary to model a recipe author. A `Struct` is used because some keys are optional. This injects the `LocaleReducer` in order to convert all description locales to a hash for quick lookup rather than use the redundant keys provided by the API. Will soon be used by the recipe model (soon to be added).

Milestone: minor
2026-01-15 09:17:29 -07:00
Brooke Kuhlmann 8afdadbe57 Added locale reducer
Necessary to provide a reusable function to process locales by dealing with the unnecessary duplication of locale key prefixes in the API responses. This will soon be used by the models.

Milestone: minor
2026-01-15 09:16:22 -07:00
Brooke Kuhlmann 35352a579c Added recipe contract
Necessary to validate the API response and ensure it's of the right format and type. Leverages the recently added `Recipes::Author` contract.

Milestone: minor
2026-01-15 09:16:14 -07:00
Brooke Kuhlmann a9cd032ee1 Added recipe author contract
Necessary to validate the author which is part of the recipe contract (soon to be added).

Milestone: minor
2026-01-14 17:22:01 -07:00
Brooke Kuhlmann 21e2a6e625 Added HTTP request error handling to requester
Necessary to account for bad requests. This also removes the private attribute accessors since they are automatically made available via Infusible.

Milestone: minor
2026-01-14 17:22:01 -07:00
Brooke Kuhlmann a454e1d604 Fixed palette model to be a Struct
Necessary since some keys might be missing so this'll ensure those keys default to `nil`.

Milestone: patch
2026-01-14 17:22:01 -07:00
Brooke Kuhlmann ab4346a5d2 Fixed class descriptions for models
Improves consistency and matches what we do for contracts, endpoints, etc.

Milestone: patch
2026-01-13 09:57:10 -07:00
Brooke Kuhlmann ead9459b80 Updated to Ruby 4.0.1
link:https://www.ruby-lang.org/en/news/2026/01/13/ruby-4-0-1-released/[Details].

Milestone: patch
2026-01-13 08:08:32 -07:00
Brooke Kuhlmann 3cb1c26811 Updated version 0.8.0 2026-01-02 10:22:13 -07:00
Brooke Kuhlmann a46f4c3ec4 Updated gem dependencies
Necessary to leverage gems that are on Ruby 4.0.0 and higher. Further details can be found here:

* link:https://alchemists.io/projects[Alchemists]
* link:https://dry-rb.org[Dry RB]

The biggest change is leveraging the new RSpec helper provided by link:https://alchemists.io/projects/inspectable[Inspectable].

Milestone: minor
2026-01-02 10:03:03 -07:00
Brooke Kuhlmann 3f27ef9793 Updated to Ruby 4.0.0
link:https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released[Details].

Milestone: minor
2025-12-25 09:00:05 -07:00