assistant 1.0.0.rc1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6b4eab141f258e58024dcc2805a4030321835b45853cf915d8a8c48aa9849144
4
- data.tar.gz: 354914c47054404c57ef636d46316e0ee8cb491305ab9c081a0628e4a30708c5
3
+ metadata.gz: 4af2f1a745032c7fbb585be6304666cac17ba354acddb8a2c85848bac669a7f4
4
+ data.tar.gz: fc6e2546b5616515ab4064edcbda0152fbaec2a313a68bec1faf950a3b8f25d4
5
5
  SHA512:
6
- metadata.gz: ced1f45ddcc684272b2858aebead07ee968823cdf0c52bf71877cf283b1881fec66e59b7f9c56538d5c9ba949abac3c425083c1334947bc0572235dea1ed0b92
7
- data.tar.gz: 64bde79e3880ac363fc31e0d37dcae5e4e3657ec4f55807385378e3f59699fb211204a1fdf8339d4e8dc9e5d4ce8dad1bb71e82d5c6b845c1697dbc136cc99ba
6
+ metadata.gz: 797efe6b774b1491c995faa2c80e175c4ed27285addb1bb64ea263f877ced07ff2c922ebe57c7bd8bb2fd685f76b8f73b799b11b9cb15169047fdb9cf0ad705e
7
+ data.tar.gz: ede35de6de5232c25cb44d406cf33fccf5a3dd3ee8a6ae160e8fc1c9ebed4822f0b456223b0e208081e8ebc383413a4d561f00bf6830dc1b42a6b2631d5743e6
@@ -1,22 +1,21 @@
1
1
  ---
2
2
  name: Docs
3
3
 
4
+ # Docsify is a client-side SPA: there is no build step. We upload the
5
+ # raw `docs/` tree as the Pages artifact and let docsify fetch markdown
6
+ # files at runtime. `docs/.nojekyll` tells GitHub to skip its own
7
+ # Jekyll pre-processor on the artifact.
8
+
4
9
  on:
5
10
  push:
6
11
  branches: [main]
7
12
  paths:
8
13
  - docs/**
9
- - _config.yml
10
- - Gemfile
11
- - Gemfile.lock
12
14
  - .github/workflows/docs.yml
13
15
  pull_request:
14
16
  branches: [main]
15
17
  paths:
16
18
  - docs/**
17
- - _config.yml
18
- - Gemfile
19
- - Gemfile.lock
20
19
  - .github/workflows/docs.yml
21
20
  workflow_dispatch:
22
21
 
@@ -28,28 +27,19 @@ concurrency:
28
27
  cancel-in-progress: false
29
28
 
30
29
  jobs:
31
- build:
32
- name: jekyll build --strict_front_matter
30
+ upload:
31
+ name: Upload docs/ artifact
33
32
  runs-on: ubuntu-latest
34
- env:
35
- BUNDLE_WITH: docs
36
- JEKYLL_ENV: production
37
33
  steps:
38
34
  - uses: actions/checkout@v4
39
- - uses: ruby/setup-ruby@v1
40
- with:
41
- ruby-version: '3.4'
42
- bundler-cache: true
43
- - name: Build site
44
- run: bundle exec jekyll build --strict_front_matter --baseurl "/assistant"
45
35
  - name: Upload site artifact
46
36
  uses: actions/upload-pages-artifact@v3
47
37
  with:
48
- path: _site
38
+ path: docs
49
39
 
50
40
  deploy:
51
41
  name: Deploy to GitHub Pages
52
- needs: build
42
+ needs: upload
53
43
  if: github.event_name == 'push' && github.ref == 'refs/heads/main'
54
44
  runs-on: ubuntu-latest
55
45
  permissions:
data/.gitignore CHANGED
@@ -4,9 +4,6 @@
4
4
  /coverage/
5
5
  /doc/
6
6
  /pkg/
7
- /_site/
8
- /.jekyll-cache/
9
- /.jekyll-metadata
10
7
  /spec/reports/
11
8
  /tmp/
12
9
 
data/CHANGELOG.md CHANGED
@@ -8,36 +8,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
- ### Added
11
+ ## [1.0.0] - 2026-06-16
12
+
13
+ ### Documentation
12
14
 
13
- - **GitHub Pages P2 scaffolding (Jekyll + just-the-docs)**: stood up
14
- the parallel docs site per
15
- [`docs/v1/08-github-pages.md`](docs/v1/08-github-pages.md). Ships
16
- `_config.yml` (just-the-docs theme, Lunr search, dark-mode toggle,
17
- `gh_edit_link`, `jekyll-seo-tag` + `jekyll-relative-links` plugins),
18
- an optional `:docs` Bundler group in [`Gemfile`](Gemfile) pinning
19
- `jekyll ~> 4.3`, `just-the-docs ~> 0.10`, and
20
- `jekyll-relative-links ~> 0.7`, the
21
- [`.github/workflows/docs.yml`](.github/workflows/docs.yml) workflow
22
- (PR builds `bundle exec jekyll build --strict_front_matter`; pushes
23
- to `main` deploy via `actions/deploy-pages@v4`), `docs:install` /
24
- `docs:build` / `docs:serve` Rake tasks driving the Jekyll
25
- toolchain, per-page front matter on every site page (Home, Getting
26
- started, Guides + 5 sub-pages, API reference, Deprecations, Examples
27
- + 7 sub-pages, Roadmap, Changelog), and a new `docs/guides/index.md`
28
- landing for the Guides section. The site builds locally with `rake
29
- docs:build` and deploys to `https://ramongr.github.io/assistant/` on
30
- every push to `main`. Pages source = `GitHub Actions` was enabled in
31
- repo settings after the original mkdocs PR (#177) merged; no further
32
- manual step is needed for the Jekyll cut-over.
33
-
34
- _This entry supersedes the original mkdocs-based P2 scaffolding —
35
- the mkdocs stack lived for one PR before being replaced with Jekyll
36
- to match the gem's primary toolchain, drop the Python build
37
- dependency, and avoid the `Pygments==2.19.1` pin that worked around
38
- a 2.20.0 `HtmlFormatter` regression._
39
-
40
- ## [1.0.0.rc1] - 2026-06-15
15
+ - Published a public docs site with getting started, API reference, guides,
16
+ examples, search, dark mode, copy buttons, and diagrams.
17
+ - Polished docs navigation, anchors, routing, and light-mode readability.
41
18
 
42
19
  ### Added
43
20
 
@@ -75,14 +52,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
75
52
  soft-fail semantics, the uniform result shape, the RBS / Steep
76
53
  posture, and the zero-runtime-deps guarantee. Added
77
54
  `spec.metadata['documentation_uri']`
78
- (`https://rubydoc.info/gems/assistant`) and
55
+ (`https://ramongr.github.io/assistant/`) and
79
56
  `spec.metadata['bug_tracker_uri']`
80
57
  (`https://github.com/ramongr/assistant/issues`). The `spec.files`
81
58
  glob now excludes `examples/`, `docs/v1/`, and `docs/v1.x/` from the
82
59
  packaged gem so internal planning material and runnable samples no
83
60
  longer ship to RubyGems (Q9 decision in
84
61
  [`docs/v1/07-risks-and-open-questions.md`](docs/v1/07-risks-and-open-questions.md)).
85
- No behaviour change; `Assistant::VERSION` is unchanged.
62
+ No behaviour change.
86
63
 
87
64
  ### Changed (Breaking)
88
65
 
data/Gemfile CHANGED
@@ -7,12 +7,9 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
7
7
  # Specify your gem's dependencies in assistant.gemspec
8
8
  gemspec
9
9
 
10
- # Documentation site (GitHub Pages) toolchain. Optional so regular
11
- # contributors don't pull Jekyll on every `bundle install`. CI's Docs
12
- # workflow installs this group via `BUNDLE_WITH=docs`. See
13
- # `docs/v1/08-github-pages.md` and `Rakefile`'s `docs:*` tasks.
14
- group :docs, optional: true do
15
- gem 'jekyll', '~> 4.3'
16
- gem 'jekyll-relative-links', '~> 0.7'
17
- gem 'just-the-docs', '~> 0.10'
18
- end
10
+ # WEBrick is no longer a default gem in Ruby 3.0+. It's a stdlib gem
11
+ # used only by `rake docs:serve` to mount the Docsify SPA at
12
+ # `/assistant/` so local URLs match the production base path. Not in
13
+ # `gemspec` because the `runtime-deps` CI gate keeps the gem itself
14
+ # dependency-free.
15
+ gem 'webrick', '~> 1.8'
data/Gemfile.lock CHANGED
@@ -1,90 +1,31 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- assistant (1.0.0.rc1)
4
+ assistant (1.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- addressable (2.9.0)
10
- public_suffix (>= 2.0.2, < 8.0)
11
9
  ast (2.4.3)
12
- base64 (0.3.0)
13
- bigdecimal (4.1.2)
14
10
  byebug (13.0.0)
15
11
  reline (>= 0.6.0)
16
- colorator (1.1.0)
17
12
  colorize (1.1.0)
18
13
  concurrent-ruby (1.3.6)
19
14
  csv (3.3.5)
20
15
  docile (1.4.1)
21
16
  drb (2.2.3)
22
- em-websocket (0.5.3)
23
- eventmachine (>= 0.12.9)
24
- http_parser.rb (~> 0)
25
- eventmachine (1.2.7)
26
17
  ffi (1.17.4)
27
18
  ffi (1.17.4-arm64-darwin)
28
19
  fileutils (1.8.0)
29
- forwardable-extended (2.6.0)
30
- google-protobuf (4.35.1)
31
- bigdecimal
32
- rake (~> 13.3)
33
- google-protobuf (4.35.1-arm64-darwin)
34
- bigdecimal
35
- rake (~> 13.3)
36
- http_parser.rb (0.8.1)
37
- i18n (1.14.8)
38
- concurrent-ruby (~> 1.0)
39
20
  io-console (0.8.2)
40
- jekyll (4.4.1)
41
- addressable (~> 2.4)
42
- base64 (~> 0.2)
43
- colorator (~> 1.0)
44
- csv (~> 3.0)
45
- em-websocket (~> 0.5)
46
- i18n (~> 1.0)
47
- jekyll-sass-converter (>= 2.0, < 4.0)
48
- jekyll-watch (~> 2.0)
49
- json (~> 2.6)
50
- kramdown (~> 2.3, >= 2.3.1)
51
- kramdown-parser-gfm (~> 1.0)
52
- liquid (~> 4.0)
53
- mercenary (~> 0.3, >= 0.3.6)
54
- pathutil (~> 0.9)
55
- rouge (>= 3.0, < 5.0)
56
- safe_yaml (~> 1.0)
57
- terminal-table (>= 1.8, < 4.0)
58
- webrick (~> 1.7)
59
- jekyll-include-cache (0.2.1)
60
- jekyll (>= 3.7, < 5.0)
61
- jekyll-relative-links (0.7.0)
62
- jekyll (>= 3.3, < 5.0)
63
- jekyll-sass-converter (3.1.0)
64
- sass-embedded (~> 1.75)
65
- jekyll-seo-tag (2.9.0)
66
- jekyll (>= 3.8, < 5.0)
67
- jekyll-watch (2.2.1)
68
- listen (~> 3.0)
69
21
  json (2.19.9)
70
- just-the-docs (0.12.0)
71
- jekyll (>= 3.8.5)
72
- jekyll-include-cache
73
- jekyll-seo-tag (>= 2.0)
74
- rake (>= 12.3.1)
75
- kramdown (2.5.2)
76
- rexml (>= 3.4.4)
77
- kramdown-parser-gfm (1.1.0)
78
- kramdown (~> 2.0)
79
22
  language_server-protocol (3.17.0.5)
80
23
  lint_roller (1.1.0)
81
- liquid (4.0.4)
82
24
  listen (3.10.0)
83
25
  logger
84
26
  rb-fsevent (~> 0.10, >= 0.10.3)
85
27
  rb-inotify (~> 0.9, >= 0.9.10)
86
28
  logger (1.7.0)
87
- mercenary (0.4.0)
88
29
  minitest (6.0.6)
89
30
  drb (~> 2.0)
90
31
  prism (~> 1.5)
@@ -92,10 +33,7 @@ GEM
92
33
  parser (3.3.11.1)
93
34
  ast (~> 2.4.1)
94
35
  racc
95
- pathutil (0.16.2)
96
- forwardable-extended (~> 2.6)
97
36
  prism (1.9.0)
98
- public_suffix (7.0.5)
99
37
  racc (1.8.1)
100
38
  rainbow (3.1.1)
101
39
  rake (13.4.2)
@@ -109,8 +47,6 @@ GEM
109
47
  regexp_parser (2.12.0)
110
48
  reline (0.6.3)
111
49
  io-console (~> 0.5)
112
- rexml (3.4.4)
113
- rouge (4.7.0)
114
50
  rubocop (1.86.2)
115
51
  json (~> 2.3)
116
52
  language_server-protocol (~> 3.17.0.2)
@@ -140,12 +76,6 @@ GEM
140
76
  lint_roller (~> 1.1)
141
77
  rubocop (>= 1.72, < 2.0)
142
78
  ruby-progressbar (1.13.0)
143
- safe_yaml (1.0.5)
144
- sass-embedded (1.101.0)
145
- google-protobuf (~> 4.31)
146
- rake (>= 13)
147
- sass-embedded (1.101.0-arm64-darwin)
148
- google-protobuf (~> 4.31)
149
79
  securerandom (0.4.1)
150
80
  simplecov (0.22.0)
151
81
  docile (~> 1.1)
@@ -187,9 +117,6 @@ DEPENDENCIES
187
117
  bundler (~> 4.0)
188
118
  byebug (~> 13.0)
189
119
  colorize (~> 1.1)
190
- jekyll (~> 4.3)
191
- jekyll-relative-links (~> 0.7)
192
- just-the-docs (~> 0.10)
193
120
  minitest (~> 6.0)
194
121
  rake (~> 13.4)
195
122
  rubocop (~> 1.86, >= 1.86.2)
@@ -199,55 +126,32 @@ DEPENDENCIES
199
126
  rubocop-style-compact_nesting (~> 0.1)
200
127
  simplecov (~> 0.22)
201
128
  steep (~> 2.0)
129
+ webrick (~> 1.8)
202
130
  yard (~> 0.9)
203
131
 
204
132
  CHECKSUMS
205
- addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
206
- assistant (1.0.0.rc1)
133
+ assistant (1.0.0)
207
134
  ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
208
- base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
209
- bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
210
135
  bundler (4.0.11) sha256=5bcec0fb78302e48d02ee46f10ee6e6942be647ba5b44a6d1ddfda9a240ce785
211
136
  byebug (13.0.0) sha256=d2263efe751941ca520fa29744b71972d39cbc41839496706f5d9b22e92ae05d
212
- colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38
213
137
  colorize (1.1.0) sha256=30b5237f0603f6662ab8d1fc2bd4a96142b806c6415d79e45ef5fdc6a0cfc837
214
138
  concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
215
139
  csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f
216
140
  docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
217
141
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
218
- em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8
219
- eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972
220
142
  ffi (1.17.4) sha256=bcd1642e06f0d16fc9e09ac6d49c3a7298b9789bcb58127302f934e437d60acf
221
143
  ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b
222
144
  fileutils (1.8.0) sha256=8c6b1df54e2540bdb2f39258f08af78853aa70bad52b4d394bbc6424593c6e02
223
- forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97
224
- google-protobuf (4.35.1) sha256=a3a6471331d918f58dfa4d014a8f6286f0af2cf4840216bde52fcf2ea3fe3726
225
- google-protobuf (4.35.1-arm64-darwin) sha256=d9c957df04fa89c749fa9a72a7b383eb4296efc9b2303dc6fd6fbe39c698ad6b
226
- http_parser.rb (0.8.1) sha256=9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a
227
- i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
228
145
  io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
229
- jekyll (4.4.1) sha256=4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1
230
- jekyll-include-cache (0.2.1) sha256=c7d4b9e551732a27442cb2ce853ba36a2f69c66603694b8c1184c99ab1a1a205
231
- jekyll-relative-links (0.7.0) sha256=831e54c348eeae751845c0d4ac4b244bd73b664341f0e8c9f1803b16f4570835
232
- jekyll-sass-converter (3.1.0) sha256=83925d84f1d134410c11d0c6643b0093e82e3a3cf127e90757a85294a3862443
233
- jekyll-seo-tag (2.9.0) sha256=0260015a8e1df9bf195cdfb0c675b7b2883fd8cbf12556e1c1cbe36a831c6852
234
- jekyll-watch (2.2.1) sha256=bc44ed43f5e0a552836245a54dbff3ea7421ecc2856707e8a1ee203a8387a7e1
235
146
  json (2.19.9) sha256=9b9025b7cdddafa38d316eca0b2358488e42d417045c1b90d216a9fefe46b79a
236
- just-the-docs (0.12.0) sha256=15f2839ac9082898d60f33b978aa6f8e46fc50ba8fac20ae7a7f0e1fb295523e
237
- kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa
238
- kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729
239
147
  language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
240
148
  lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
241
- liquid (4.0.4) sha256=4fcfebb1a045e47918388dbb7a0925e7c3893e58d2bd6c3b3c73ec17a2d8fdb3
242
149
  listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2
243
150
  logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
244
- mercenary (0.4.0) sha256=b25a1e4a59adca88665e08e24acf0af30da5b5d859f7d8f38fba52c28f405138
245
151
  minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1
246
152
  parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
247
153
  parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54
248
- pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589
249
154
  prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
250
- public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
251
155
  racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
252
156
  rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
253
157
  rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
@@ -256,8 +160,6 @@ CHECKSUMS
256
160
  rbs (4.0.2) sha256=af75671e66cd03434cc546622741ebf83f6197ec4328375805306330bf78ef25
257
161
  regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
258
162
  reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
259
- rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
260
- rouge (4.7.0) sha256=dba5896715c0325c362e895460a6d350803dbf6427454f49a47500f3193ea739
261
163
  rubocop (1.86.2) sha256=bb2e97f635eda42c448f2588f4a6ff78f221b8bdfdf65b1e9b07fbd57521b45d
262
164
  rubocop-ast (1.49.1) sha256=4412f3ee70f6fe4546cc489548e0f6fcf76cafcfa80fa03af67098ffed755035
263
165
  rubocop-minitest (0.39.1) sha256=998398d6da4026d297f0f9bf709a1eac5f2b6947c24431f94af08138510cf7ed
@@ -265,9 +167,6 @@ CHECKSUMS
265
167
  rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d
266
168
  rubocop-style-compact_nesting (0.1.2) sha256=cbe155ec7230dcea32925d34a435b40c2fc666ea9b45755f92102dd1a73b739b
267
169
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
268
- safe_yaml (1.0.5) sha256=a6ac2d64b7eb027bdeeca1851fe7e7af0d668e133e8a88066a0c6f7087d9f848
269
- sass-embedded (1.101.0) sha256=57dbc3409e2c0a2c581a4c9945c2bd72ec88e71ec98017bd02dd1da8a76b22f4
270
- sass-embedded (1.101.0-arm64-darwin) sha256=9fed684380b49499dfc856aba0d026a0748f924bd78044ffff2bae1537aea73e
271
170
  securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
272
171
  simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
273
172
  simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
data/README.md CHANGED
@@ -25,6 +25,8 @@ gem install assistant
25
25
 
26
26
  Ruby `>= 3.4` is required.
27
27
 
28
+ **Online documentation:** <https://ramongr.github.io/assistant/>
29
+
28
30
  ## 60-second example
29
31
 
30
32
  ```ruby
@@ -90,8 +92,11 @@ a per-class generator (`bin/assistant-rbs`) out of the box.
90
92
 
91
93
  ## Documentation
92
94
 
95
+ - **Online documentation** — <https://ramongr.github.io/assistant/>.
93
96
  - **Getting started** — [`docs/getting-started.md`](docs/getting-started.md)
94
97
  walks from `gem install` to a first working service.
98
+ - **Guides** — [`docs/guides/`](docs/guides/README.md) covers inputs,
99
+ validation, logging/results, composition, and RBS/Steep usage.
95
100
  - **API reference** — [`docs/api-reference.md`](docs/api-reference.md)
96
101
  is the hand-written, curated reference for every Frozen symbol; the
97
102
  source of truth for stability labels stays in
@@ -102,14 +107,11 @@ a per-class generator (`bin/assistant-rbs`) out of the box.
102
107
  [`docs/v1/06-migration-0x-to-1.md`](docs/v1/06-migration-0x-to-1.md).
103
108
  - **Deprecations** — [`docs/deprecations.md`](docs/deprecations.md).
104
109
  - **Runnable sample** — [`examples/greeter.rb`](examples/greeter.rb).
110
+ - **Examples gallery** — [`docs/examples/README.md`](docs/examples/README.md)
111
+ links to runnable Rails, CLI, Sidekiq, callbacks, notifier, composition, and
112
+ RBS generator examples.
105
113
  - **Changelog** — [`CHANGELOG.md`](CHANGELOG.md).
106
114
 
107
- The deeper guides (`docs/guides/inputs.md`,
108
- `docs/guides/validation.md`, `docs/guides/logging-and-results.md`,
109
- `docs/guides/composing-services.md`) are tracked in
110
- [`docs/v1/03-documentation.md`](docs/v1/03-documentation.md) and land
111
- in follow-up PRs.
112
-
113
115
  ## Roadmap
114
116
 
115
117
  The plan for the 1.0 release lives under
data/Rakefile CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
  require 'rake/testtask'
5
+ require 'webrick' # stdlib gem (pinned in Gemfile); used by `rake docs:serve`.
5
6
 
6
7
  Rake::TestTask.new(:test) do |t|
7
8
  t.libs << 'test'
@@ -39,19 +40,24 @@ desc 'Run the full local CI pipeline: test + rubocop + steep + yard'
39
40
  task ci: %i[test rubocop steep yard]
40
41
 
41
42
  namespace :docs do
42
- desc 'Install the Jekyll docs toolchain (Bundler :docs group)'
43
- task :install do
44
- sh 'bundle install --with docs'
45
- end
43
+ desc 'Serve the Docsify site on http://127.0.0.1:4000/assistant/ (Ctrl-C to stop)'
44
+ task :serve do
45
+ # Docsify runs in hash-mode routing, so every navigable URL resolves to
46
+ # `docs/index.html` (no SPA-fallback servlet required). We mount `docs/`
47
+ # at `/assistant/` over WEBrick so local URLs match the production base
48
+ # path verbatim.
49
+ root = File.expand_path('docs', __dir__)
50
+ mount = '/assistant'
46
51
 
47
- desc 'Build the Jekyll site into ./_site (mirrors the CI Pages build)'
48
- task :build do
49
- sh 'bundle exec jekyll build --strict_front_matter'
50
- end
52
+ server = WEBrick::HTTPServer.new(Port: 4000, BindAddress: '127.0.0.1')
53
+ server.mount(mount, WEBrick::HTTPServlet::FileHandler, root, FancyIndexing: false)
54
+ server.mount_proc('/') do |_req, res|
55
+ res.set_redirect(WEBrick::HTTPStatus::Found, "#{mount}/")
56
+ end
51
57
 
52
- desc 'Serve the Jekyll site on http://127.0.0.1:4000 with live reload'
53
- task :serve do
54
- sh 'bundle exec jekyll serve --livereload'
58
+ trap('INT') { server.shutdown }
59
+ puts "Serving http://127.0.0.1:4000#{mount}/ (Ctrl-C to stop)"
60
+ server.start
55
61
  end
56
62
  end
57
63
 
data/Steepfile CHANGED
@@ -37,13 +37,28 @@ target :lib do
37
37
  check 'lib/assistant/rbs_generator/cli.rb'
38
38
  end
39
39
 
40
- # Type-checks the sample service in `examples/` against the .rbs
41
- # generated by `exe/assistant-rbs` and shipped in `sig/examples/`.
40
+ # Type-checks the sample service in `examples/greeter.rb` against the
41
+ # .rbs generated by `exe/assistant-rbs` and shipped in `sig/examples/`.
42
42
  # Doubles as the M11 regression that the generator's output is in fact
43
43
  # accepted by Steep.
44
+ #
45
+ # The check is scoped to `greeter.rb` rather than the whole `examples/`
46
+ # tree because the P6-P12 example folders (docs/v1/08-github-pages.md)
47
+ # are documentation companions, not Steep regressions: hand-writing
48
+ # `.rbs` sidecars for every Service / POJO they ship would be cost
49
+ # without leverage. The `rbs_generator` example (P12) re-includes its
50
+ # own files via a dedicated check below.
44
51
  target :examples do
45
52
  signature 'lib'
46
53
  signature 'sig'
47
54
 
48
- check 'examples'
55
+ check 'examples/greeter.rb'
56
+ end
57
+
58
+ target :rbs_generator_example do
59
+ signature 'lib'
60
+ signature 'examples/rbs_generator/sig'
61
+
62
+ check 'examples/rbs_generator/create_user.rb'
63
+ check 'examples/rbs_generator/type_probe.rb'
49
64
  end
data/assistant.gemspec CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
30
30
  spec.metadata['bug_tracker_uri'] = 'https://github.com/ramongr/assistant/issues'
31
31
  spec.metadata['changelog_uri'] = 'https://github.com/ramongr/assistant/blob/main/CHANGELOG.md'
32
- spec.metadata['documentation_uri'] = 'https://rubydoc.info/gems/assistant'
32
+ spec.metadata['documentation_uri'] = 'https://ramongr.github.io/assistant/'
33
33
  spec.metadata['homepage_uri'] = 'https://github.com/ramongr/assistant'
34
34
  spec.metadata['rubygems_mfa_required'] = 'true'
35
35
  spec.metadata['source_code_uri'] = 'https://github.com/ramongr/assistant'
data/docs/.nojekyll ADDED
File without changes