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 +4 -4
- data/.github/workflows/docs.yml +9 -19
- data/.gitignore +0 -3
- data/CHANGELOG.md +8 -31
- data/Gemfile +6 -9
- data/Gemfile.lock +3 -104
- data/README.md +8 -6
- data/Rakefile +17 -11
- data/Steepfile +18 -3
- data/assistant.gemspec +1 -1
- data/docs/.nojekyll +0 -0
- data/docs/404.html +292 -0
- data/docs/_media/apple-touch-icon.png +0 -0
- data/docs/_media/favicon.png +0 -0
- data/docs/_media/home-logo.svg +8 -0
- data/docs/_media/repo-card.png +0 -0
- data/docs/_sidebar.md +29 -0
- data/docs/api-reference.md +22 -11
- data/docs/changelog.md +0 -5
- data/docs/deprecations.md +4 -9
- data/docs/examples/{index.md → README.md} +7 -17
- data/docs/examples/cli-handler.md +39 -13
- data/docs/examples/composing-services.md +45 -13
- data/docs/examples/execute-callbacks.md +49 -13
- data/docs/examples/instrumentation-notifier.md +48 -13
- data/docs/examples/rails-service.md +40 -13
- data/docs/examples/rbs-generator.md +90 -13
- data/docs/examples/sidekiq-worker.md +33 -13
- data/docs/getting-started.md +11 -5
- data/docs/guides/{index.md → README.md} +1 -8
- data/docs/guides/composing-services.md +6 -12
- data/docs/guides/inputs.md +6 -12
- data/docs/guides/logging-and-results.md +9 -15
- data/docs/guides/rbs-and-types.md +151 -13
- data/docs/guides/validation.md +29 -11
- data/docs/index.html +291 -0
- data/docs/index.md +67 -24
- data/docs/roadmap.md +8 -13
- data/lib/assistant/version.rb +1 -1
- metadata +12 -5
- data/_config.yml +0 -87
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4af2f1a745032c7fbb585be6304666cac17ba354acddb8a2c85848bac669a7f4
|
|
4
|
+
data.tar.gz: fc6e2546b5616515ab4064edcbda0152fbaec2a313a68bec1faf950a3b8f25d4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 797efe6b774b1491c995faa2c80e175c4ed27285addb1bb64ea263f877ced07ff2c922ebe57c7bd8bb2fd685f76b8f73b799b11b9cb15169047fdb9cf0ad705e
|
|
7
|
+
data.tar.gz: ede35de6de5232c25cb44d406cf33fccf5a3dd3ee8a6ae160e8fc1c9ebed4822f0b456223b0e208081e8ebc383413a4d561f00bf6830dc1b42a6b2631d5743e6
|
data/.github/workflows/docs.yml
CHANGED
|
@@ -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
|
-
|
|
32
|
-
name:
|
|
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:
|
|
38
|
+
path: docs
|
|
49
39
|
|
|
50
40
|
deploy:
|
|
51
41
|
name: Deploy to GitHub Pages
|
|
52
|
-
needs:
|
|
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
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
|
-
|
|
11
|
+
## [1.0.0] - 2026-06-16
|
|
12
|
+
|
|
13
|
+
### Documentation
|
|
12
14
|
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
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://
|
|
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
|
|
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
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
# `
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
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
|
-
|
|
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 '
|
|
43
|
-
task :
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
|
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://
|
|
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
|