|
2 | 2 | * Your contribution here. |
3 | 3 | * [#113](https://github.com/ashkan18/graphlient/pull/113): Fix CI builds - [@yuki24](https://github.com/yuki24). |
4 | 4 | * [#112](https://github.com/ashkan18/graphlient/pull/112): Update graphql-client github repository links in README - [@th1988](https://github.com/th1988). |
5 | | -* [#115](https://github.com/ashkan18/graphlient/pull/115): `Client#to_query_string(**kargs, &block)`: builds the full GraphQL query document from the |
6 | | - DSL block and returns a `String` without touching the schema or Faraday HTTP adapter. |
7 | | - Enables DSL-only mode where HTTP dispatch is handled externally - [@rellampec](https://github.com/rellampec). |
8 | | -* [#115](https://github.com/ashkan18/graphlient/pull/115): `Query#spread(fragment_name)`: emits `...FragmentName` into the query string as a named |
9 | | - fragment spread. Alternative to the `___Const` convention for use cases where |
10 | | - `graphql-client` constant parsing is not available - [@rellampec](https://github.com/rellampec). |
11 | | -* Directive DSL (`_name` convention): any method starting with `_` followed by a lowercase |
12 | | - letter is treated as a GraphQL directive — `_skip(if: :x)` → `@skip(if: $x)`, |
13 | | - `_include(if: :x)` → `@include(if: $x)`, custom directives supported. Directives can be |
14 | | - applied to fields, fragment spreads, and inline fragments - [@rellampec](https://github.com/rellampec). |
15 | | -* `on(:TypeName, *directives, &block)`: inline fragment DSL — `on(:PaidInvoice) { amountPaid }` |
16 | | - → `... on PaidInvoice { amountPaid }`. Accepts directive arguments the same way as fields |
17 | | - - [@rellampec](https://github.com/rellampec). |
18 | | -* `fragment(:Name, on: :Type, &block)`: inline fragment definition — defines a named fragment |
19 | | - body using the same DSL and appends it to the query document automatically. Fragments are |
20 | | - scoped to the query call; no global registry - [@rellampec](https://github.com/rellampec). |
21 | | -* Custom scalar registration: `client = Graphlient::Client.new(url) { |c| c.scalar :date, 'Date' }` |
22 | | - — registers additional scalar types for use in variable declarations (`:date` → `Date`, |
23 | | - `:uuid` → `UUID`, etc.) alongside the built-in `:int`, `:float`, `:string`, `:boolean` |
24 | | - - [@rellampec](https://github.com/rellampec). |
25 | | -* `Query` refactored into `Query::Serializer` composed from focused concern modules |
26 | | - (`Scalars`, `Arguments`, `Evaluator`, `Fragments`, `Directives`). Public API unchanged |
27 | | - - [@rellampec](https://github.com/rellampec). |
28 | | -* CI: added Ruby 3.4 to the required test matrix; fixed Ruby 3.1 compatibility via |
29 | | - WebMock `stub_request.to_rack`; fixed Ruby 3.4 `mutex_m` dependency |
30 | | - - [@rellampec](https://github.com/rellampec). |
31 | | -* [#115](https://github.com/ashkan18/graphlient/pull/115): `spec/spec_helper.rb`: rescue `LoadError` on `byebug` require so specs run on platforms |
32 | | - where byebug is not installable (e.g. Windows with Ruby 3.2) - [@rellampec](https://github.com/rellampec). |
| 5 | +* [#115](https://github.com/ashkan18/graphlient/pull/115): `Client#to_query_string(**kargs, &block)`: serializes a DSL block to a `String` without schema loading or HTTP — enables DSL-only mode and external HTTP dispatch - [@rellampec](https://github.com/rellampec). |
| 6 | +* [#115](https://github.com/ashkan18/graphlient/pull/115): `Query#spread(fragment_name)`: emits `...FragmentName` in the query string — cleaner alternative to the `___Const` triple-underscore convention - [@rellampec](https://github.com/rellampec). |
| 7 | +* [#115](https://github.com/ashkan18/graphlient/pull/115): `spec/spec_helper.rb`: rescue `LoadError` on `byebug` require for platforms where byebug is unavailable (e.g. Windows Ruby 3.2) - [@rellampec](https://github.com/rellampec). |
| 8 | +* [#116](https://github.com/ashkan18/graphlient/pull/116): Directive DSL — `_skip(if: :x)` → `@skip(if: $x)`, `_include(if: :x)` → `@include(if: $x)`. Any `_name` method is treated as a `@name` directive; applies to fields, spreads, and inline fragments - [@rellampec](https://github.com/rellampec). |
| 9 | +* [#116](https://github.com/ashkan18/graphlient/pull/116): `on(:TypeName, *directives, &block)`: inline fragment DSL — `on(:PaidInvoice) { amountPaid }` → `... on PaidInvoice { amountPaid }` - [@rellampec](https://github.com/rellampec). |
| 10 | +* [#116](https://github.com/ashkan18/graphlient/pull/116): `fragment(:Name, on: :Type, &block)`: inline fragment definition appended to the query document automatically; scoped to the query call, no global registry - [@rellampec](https://github.com/rellampec). |
| 11 | +* [#116](https://github.com/ashkan18/graphlient/pull/116): Custom scalar registration — `c.scalar :date, 'Date'` extends the built-in scalar set (`:int`, `:float`, `:string`, `:boolean`) with API-specific types - [@rellampec](https://github.com/rellampec). |
| 12 | +* [#116](https://github.com/ashkan18/graphlient/pull/116): `Query` refactored into `Query::Serializer` composed from concern modules (`Scalars`, `Arguments`, `Evaluator`, `Fragments`, `Directives`). Public API unchanged - [@rellampec](https://github.com/rellampec). |
| 13 | +* [#116](https://github.com/ashkan18/graphlient/pull/116): CI: Ruby 3.4 added to test matrix; Ruby 3.1 WebMock `to_rack` fix; `mutex_m` gem added for Ruby 3.4 stdlib removal - [@rellampec](https://github.com/rellampec). |
33 | 14 |
|
34 | 15 | ### 0.8.0 (2024/01/06) |
35 | 16 | * [#110](https://github.com/ashkan18/graphlient/pull/110): Ensure correct Faraday JSON response body parsing with invalid response header - [@taylorthurlow](https://github.com/taylorthurlow). |
|
0 commit comments