Skip to content

Commit 30af3c3

Browse files
committed
✨ Improved support for Merge Recipes
### Added - **`Recipe::Runner` target file override**: Accept `target_files` parameter to override recipe targets - `Runner.new(recipe, target_files: ["file1.md", "file2.md"])` - Process only specified files - Paths are expanded relative to `base_dir` - When not specified, falls back to recipe's configured targets - **`exe/ast-merge-recipe` file arguments**: Accept target files on command line - `ast-merge-recipe recipe.yml file1.md file2.md` - Override recipe targets - Updated help text and banner to document new usage - **`bin/update_gem_family_section` file arguments**: Accept target files on command line - `bin/update_gem_family_section vendor/my-gem/README.md` - Process specific file(s) - If no files specified, defaults to `README.md` + `vendor/*/README.md` - Added `--skip-fix` option to skip the formatting fix step ### Changed - **`bin/update_gem_family_section`**: Refactored to use `OptionParser` for clean option handling - Consistent with `bin/fix_readme_formatting` style - Properly separates options from file arguments
1 parent 42a299f commit 30af3c3

File tree

103 files changed

+3896
-350
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+3896
-350
lines changed

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,24 @@ Please file a bug if you notice a violation of semantic versioning.
2020

2121
### Added
2222

23+
- **`Recipe::Runner` target file override**: Accept `target_files` parameter to override recipe targets
24+
- `Runner.new(recipe, target_files: ["file1.md", "file2.md"])` - Process only specified files
25+
- Paths are expanded relative to `base_dir`
26+
- When not specified, falls back to recipe's configured targets
27+
- **`exe/ast-merge-recipe` file arguments**: Accept target files on command line
28+
- `ast-merge-recipe recipe.yml file1.md file2.md` - Override recipe targets
29+
- Updated help text and banner to document new usage
30+
- **`bin/update_gem_family_section` file arguments**: Accept target files on command line
31+
- `bin/update_gem_family_section vendor/my-gem/README.md` - Process specific file(s)
32+
- If no files specified, defaults to `README.md` + `vendor/*/README.md`
33+
- Added `--skip-fix` option to skip the formatting fix step
34+
2335
### Changed
2436

37+
- **`bin/update_gem_family_section`**: Refactored to use `OptionParser` for clean option handling
38+
- Consistent with `bin/fix_readme_formatting` style
39+
- Properly separates options from file arguments
40+
2541
### Deprecated
2642

2743
### Removed

Gemfile.lock

Lines changed: 169 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,3 @@
1-
GIT
2-
remote: https://github.com/pboling/ruby-tree-sitter.git
3-
revision: c36cff9cbf55ca1512cc49d8739e4efc2ff0a962
4-
branch: tree_haver
5-
specs:
6-
ruby_tree_sitter (2.0.0)
7-
oppen (~> 1.0)
8-
sorbet-runtime
9-
zeitwerk
10-
11-
GIT
12-
remote: https://github.com/pboling/tree_stump.git
13-
revision: 117b262335214bbfb3ec8210dc0efe336db03538
14-
branch: tree_haver
15-
specs:
16-
tree_stump (0.1.0)
17-
181
GIT
192
remote: https://github.com/pboling/yard-junk.git
203
revision: 54ccebabbfa9a9cd44d0b991687ebbfd22c32b55
@@ -27,6 +10,145 @@ GIT
2710
rainbow
2811
yard
2912

13+
PATH
14+
remote: vendor/bash-merge
15+
specs:
16+
bash-merge (2.0.3)
17+
ast-merge (~> 4.0, >= 4.0.1)
18+
tree_haver (~> 5.0, >= 5.0.1)
19+
version_gem (~> 1.1, >= 1.1.9)
20+
21+
PATH
22+
remote: vendor/commonmarker-merge
23+
specs:
24+
commonmarker-merge (1.0.0)
25+
commonmarker (~> 2.0)
26+
markdown-merge (~> 1.0)
27+
version_gem (~> 1.1, >= 1.1.9)
28+
29+
PATH
30+
remote: vendor/dotenv-merge
31+
specs:
32+
dotenv-merge (1.0.1)
33+
ast-merge (~> 4.0, >= 4.0.0)
34+
version_gem (~> 1.1, >= 1.1.9)
35+
36+
PATH
37+
remote: vendor/json-merge
38+
specs:
39+
json-merge (1.1.0)
40+
ast-merge (~> 4.0, >= 4.0.0)
41+
tree_haver (~> 5.0, >= 5.0.0)
42+
version_gem (~> 1.1, >= 1.1.9)
43+
44+
PATH
45+
remote: vendor/jsonc-merge
46+
specs:
47+
jsonc-merge (1.0.0)
48+
ast-merge (~> 4.0, >= 4.0.0)
49+
tree_haver (~> 5.0, >= 5.0.0)
50+
version_gem (~> 1.1, >= 1.1.9)
51+
52+
PATH
53+
remote: vendor/kettle-dev
54+
specs:
55+
kettle-dev (1.2.5)
56+
57+
PATH
58+
remote: vendor/kettle-soup-cover
59+
specs:
60+
kettle-soup-cover (1.1.1)
61+
simplecov (~> 0.22)
62+
simplecov-cobertura (~> 3.0)
63+
simplecov-console (~> 0.9, >= 0.9.3)
64+
simplecov-html (~> 0.13, >= 0.13.1)
65+
simplecov-lcov (~> 0.8)
66+
simplecov-rcov (~> 0.3, >= 0.3.7)
67+
simplecov_json_formatter (~> 0.1, >= 0.1.4)
68+
version_gem (~> 1.1, >= 1.1.9)
69+
70+
PATH
71+
remote: vendor/kettle-test
72+
specs:
73+
kettle-test (1.0.7)
74+
appraisal2 (~> 3.0)
75+
backports (~> 3.0)
76+
rspec (~> 3.0)
77+
rspec-block_is_expected (~> 1.0, >= 1.0.6)
78+
rspec-pending_for (~> 0.1, >= 0.1.19)
79+
rspec-stubbed_env (~> 1.0, >= 1.0.4)
80+
rspec_junit_formatter (~> 0.6)
81+
silent_stream (~> 1.0, >= 1.0.12)
82+
timecop-rspec (~> 1.0, >= 1.0.3)
83+
version_gem (~> 1.1, >= 1.1.9)
84+
85+
PATH
86+
remote: vendor/markdown-merge
87+
specs:
88+
markdown-merge (1.0.0)
89+
ast-merge (~> 4.0, >= 4.0.0)
90+
parslet (~> 2.0)
91+
tree_haver (~> 5.0, >= 5.0.0)
92+
version_gem (~> 1.1, >= 1.1.9)
93+
94+
PATH
95+
remote: vendor/markly-merge
96+
specs:
97+
markly-merge (1.0.0)
98+
markdown-merge (~> 1.0)
99+
markly (~> 0.15)
100+
version_gem (~> 1.1, >= 1.1.9)
101+
102+
PATH
103+
remote: vendor/prism-merge
104+
specs:
105+
prism-merge (2.0.0)
106+
ast-merge (~> 4.0, >= 4.0.0)
107+
prism (~> 1.6)
108+
version_gem (~> 1.1, >= 1.1.9)
109+
110+
PATH
111+
remote: vendor/psych-merge
112+
specs:
113+
psych-merge (1.0.0)
114+
ast-merge (~> 4.0, >= 4.0.0)
115+
psych (~> 5.0)
116+
version_gem (~> 1.1, >= 1.1.9)
117+
118+
PATH
119+
remote: vendor/rbs-merge
120+
specs:
121+
rbs-merge (1.0.0)
122+
ast-merge (~> 4.0, >= 4.0.0)
123+
version_gem (~> 1.1, >= 1.1.9)
124+
125+
PATH
126+
remote: vendor/ruby-tree-sitter
127+
specs:
128+
ruby_tree_sitter (2.0.0)
129+
oppen (~> 1.0)
130+
sorbet-runtime
131+
zeitwerk
132+
133+
PATH
134+
remote: vendor/toml-merge
135+
specs:
136+
toml-merge (2.0.0)
137+
ast-merge (~> 4.0, >= 4.0.0)
138+
tree_haver (~> 5.0, >= 5.0.0)
139+
version_gem (~> 1.1, >= 1.1.9)
140+
141+
PATH
142+
remote: vendor/tree_haver
143+
specs:
144+
tree_haver (5.0.1)
145+
version_gem (~> 1.1, >= 1.1.9)
146+
147+
PATH
148+
remote: vendor/tree_stump
149+
specs:
150+
tree_stump (0.1.0)
151+
30152
PATH
31153
remote: .
32154
specs:
@@ -107,27 +229,6 @@ GEM
107229
rdoc (>= 4.0.0)
108230
reline (>= 0.4.2)
109231
json (2.18.0)
110-
kettle-dev (1.2.4)
111-
kettle-soup-cover (1.1.1)
112-
simplecov (~> 0.22)
113-
simplecov-cobertura (~> 3.0)
114-
simplecov-console (~> 0.9, >= 0.9.3)
115-
simplecov-html (~> 0.13, >= 0.13.1)
116-
simplecov-lcov (~> 0.8)
117-
simplecov-rcov (~> 0.3, >= 0.3.7)
118-
simplecov_json_formatter (~> 0.1, >= 0.1.4)
119-
version_gem (~> 1.1, >= 1.1.9)
120-
kettle-test (1.0.7)
121-
appraisal2 (~> 3.0)
122-
backports (~> 3.0)
123-
rspec (~> 3.0)
124-
rspec-block_is_expected (~> 1.0, >= 1.0.6)
125-
rspec-pending_for (~> 0.1, >= 0.1.19)
126-
rspec-stubbed_env (~> 1.0, >= 1.0.4)
127-
rspec_junit_formatter (~> 0.6)
128-
silent_stream (~> 1.0, >= 1.0.12)
129-
timecop-rspec (~> 1.0, >= 1.0.3)
130-
version_gem (~> 1.1, >= 1.1.9)
131232
kramdown (2.5.1)
132233
rexml (>= 3.3.9)
133234
kramdown-parser-gfm (1.1.0)
@@ -322,8 +423,6 @@ GEM
322423
toml-rb (4.1.0)
323424
citrus (~> 3.0, > 3.0)
324425
racc (~> 1.7)
325-
tree_haver (5.0.1)
326-
version_gem (~> 1.1, >= 1.1.9)
327426
tsort (0.2.0)
328427
ttfunk (1.8.0)
329428
bigdecimal (~> 3.1)
@@ -362,28 +461,38 @@ DEPENDENCIES
362461
addressable (>= 2.8, < 3)
363462
appraisal2 (~> 3.0)
364463
ast-merge!
464+
bash-merge!
365465
benchmark (~> 0.5, >= 0.5.0)
366466
bundler-audit (~> 0.9.2)
367467
citrus
368468
commonmarker
469+
commonmarker-merge!
369470
debug (>= 1.1)
471+
dotenv-merge!
370472
erb (~> 5.0)
371473
ffi
372474
gem_bench (~> 2.0, >= 2.0.5)
373475
gitmoji-regex (~> 1.0, >= 1.0.3)
374476
irb (~> 1.16)
375-
kettle-dev (~> 1.1)
376-
kettle-soup-cover (~> 1.1, ~> 1.0, >= 1.1.1, >= 1.0.10)
377-
kettle-test (~> 1.0, >= 1.0.7)
477+
json-merge!
478+
jsonc-merge!
479+
kettle-dev (~> 1.1, >= 0)!
480+
kettle-soup-cover (~> 1.1, >= 1.1.1, >= 0)!
481+
kettle-test (~> 1.0, >= 1.0.7, >= 0)!
378482
kramdown (~> 2.5, >= 2.5.1)
379483
kramdown-parser-gfm (~> 1.1)
484+
markdown-merge!
380485
markly (~> 0.15, >= 0.15.2)
486+
markly-merge!
381487
mutex_m (~> 0.2)
382488
ostruct (~> 0.6, >= 0.6.3)
383489
parslet
384490
prism (~> 1.6)
491+
prism-merge!
492+
psych-merge!
385493
rake (~> 13.0)
386494
rbs (>= 3.10)
495+
rbs-merge!
387496
rdoc (~> 6.11)
388497
reek (~> 6.5)
389498
require_bench (~> 1.0, >= 1.0.4)
@@ -398,7 +507,9 @@ DEPENDENCIES
398507
stone_checksums (~> 1.0, >= 1.0.2)
399508
stringio (>= 3.0)
400509
toml
510+
toml-merge!
401511
toml-rb
512+
tree_haver!
402513
tree_stump!
403514
unparser (~> 0.8, >= 0.8.1)
404515
yaml-converter (~> 0.1)
@@ -415,19 +526,22 @@ CHECKSUMS
415526
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
416527
ast-merge (4.0.1)
417528
backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235
529+
bash-merge (2.0.3)
418530
benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
419531
bigdecimal (3.3.1) sha256=eaa01e228be54c4f9f53bf3cc34fe3d5e845c31963e7fcc5bedb05a4e7d52218
420532
bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9
421533
citrus (3.0.2) sha256=4ec2412fc389ad186735f4baee1460f7900a8e130ffe3f216b30d4f9c684f650
422534
commonmarker (2.6.1-arm-linux) sha256=ee064b7c5d446d841299a0f9a38d7e6d486c44c89b4237695c7d59d8cf256ddb
423535
commonmarker (2.6.1-x86_64-linux) sha256=7f43729af032cfb88c0e897f53bf37ad78c6ec28220a0911f5e34b4f041e7ec7
536+
commonmarker-merge (1.0.0)
424537
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
425538
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
426539
debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6
427540
delegate (0.6.1) sha256=54cf946cacfe05b1c23114edd8fbd8d54e9cea7abf36b95130ab53cc88b8f7e4
428541
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
429542
diffy (3.4.4) sha256=79384ab5ca82d0e115b2771f0961e27c164c456074bd2ec46b637ebf7b6e47e3
430543
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
544+
dotenv-merge (1.0.1)
431545
dry-configurable (1.3.0) sha256=882d862858567fc1210d2549d4c090f34370fc1bb7c5c1933de3fe792e18afa8
432546
dry-core (1.2.0) sha256=0cc5a7da88df397f153947eeeae42e876e999c1e30900f3c536fb173854e96a1
433547
dry-inflector (1.3.0) sha256=441082dde958db39df7353c71e520c05732e8da9ace28c78da2d0f1d6c669fa3
@@ -444,15 +558,19 @@ CHECKSUMS
444558
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
445559
irb (1.16.0) sha256=2abe56c9ac947cdcb2f150572904ba798c1e93c890c256f8429981a7675b0806
446560
json (2.18.0) sha256=b10506aee4183f5cf49e0efc48073d7b75843ce3782c68dbeb763351c08fd505
447-
kettle-dev (1.2.4) sha256=71373c67fe7eb0a9656e70dfd10cf226a15083b6d1be18dafcb5360f21ee98b6
448-
kettle-soup-cover (1.1.1) sha256=2303885a9d8485d8d43cb250bcf73570f6b6fb997526beeaef3ef54e3501d445
449-
kettle-test (1.0.7) sha256=16fcb8b1bc12366f443d0ec9d125c1865249865c7afff7ef856e602436d4cdc7
561+
json-merge (1.1.0)
562+
jsonc-merge (1.0.0)
563+
kettle-dev (1.2.5)
564+
kettle-soup-cover (1.1.1)
565+
kettle-test (1.0.7)
450566
kramdown (2.5.1) sha256=87bbb6abd9d3cebe4fc1f33e367c392b4500e6f8fa19dd61c0972cf4afe7368c
451567
kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729
452568
language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
453569
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
454570
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
571+
markdown-merge (1.0.0)
455572
markly (0.15.2) sha256=65dae965d4dd4ecd997fba43b93acc0fe7dadfec6f07a748640c7a9299a8551e
573+
markly-merge (1.0.0)
456574
matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b
457575
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
458576
nokogiri (1.19.0-arm-linux-gnu) sha256=572a259026b2c8b7c161fdb6469fa2d0edd2b61cd599db4bbda93289abefbfe5
@@ -468,12 +586,15 @@ CHECKSUMS
468586
prawn (2.5.0) sha256=f4e20e3b4f30bf5b9ae37dad15eb421831594553aa930b2391b0fa0a99c43cb6
469587
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
470588
prism (1.7.0) sha256=10062f734bf7985c8424c44fac382ac04a58124ea3d220ec3ba9fe4f2da65103
589+
prism-merge (2.0.0)
471590
psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
591+
psych-merge (1.0.0)
472592
public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857
473593
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
474594
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
475595
rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
476596
rbs (3.10.2) sha256=bd8a5dc4c62f229f020146b61844a31f9c79e649449d212904a474eb79c846fc
597+
rbs-merge (1.0.0)
477598
rdoc (6.17.0) sha256=0f50d4e568fc98195f9bb155a9e8dff6c7feabfb515fb22ef6df1d12ad5a02b7
478599
reek (6.5.0) sha256=d26d3a492773b2bbc228888067a21afe33ac07954a17dbd64cdeae42c4c69be1
479600
regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
@@ -526,8 +647,9 @@ CHECKSUMS
526647
timecop (0.9.10) sha256=12ba45ce57cdcf6b1043cb6cdffa6381fd89ce10d369c28a7f6f04dc1b0cd8eb
527648
timecop-rspec (1.0.3) sha256=005f14841bb606dcaefb060e321b5388e2e59537742bee8b3a9a9a40e598fab9
528649
toml (0.3.0) sha256=0a91d0f76a9036e84e44f95693b12f58d358c1df3ac8e3b5271f2056ecc6e4b9
650+
toml-merge (2.0.0)
529651
toml-rb (4.1.0) sha256=14456ec4549e4703881bf04b83a56f3264ef99884880092d83c98a2058d95846
530-
tree_haver (5.0.1) sha256=e50041af146a400194ab3fdb62ecd9271af9c5747b71f08efeca5f1f80096751
652+
tree_haver (5.0.1)
531653
tree_stump (0.1.0)
532654
tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
533655
ttfunk (1.8.0) sha256=a7cbc7e489cc46e979dde04d34b5b9e4f5c8f1ee5fc6b1a7be39b829919d20ca

0 commit comments

Comments
 (0)