Skip to content

Rewrite README as a landing page; move reference into docs/ - #65

Merged
doron050 merged 5 commits into
mainfrom
claude/fervent-mendel-03oiy5
Nov 12, 2026
Merged

doron050 merged 5 commits into
mainfrom
claude/fervent-mendel-03oiy5

Conversation

@doron050

@doron050 doron050 commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The README had grown into a long reference with multi-line caveats. This turns it into a short overview and gives every topic one page in docs/.

For users

Page Contents
README.md what the plugin is, SQL → generated code → usage, install, what's supported, options, doc index
docs/Generated-Code.md files, the query class, rows and models, naming rules, logging, RuboCop / Steep
docs/Queries.md annotations, arguments, macros, batches, :copyfrom
docs/Types.md the Ruby type of each SQL type per database, time zones, enums
docs/Connections.md pools, shared connections, forked workers, fibers, lost connections, prepared statements
docs/Transactions.md commit / rollback, isolation, tx, what happens on errors and interrupts
docs/Options.md every option, shared options, overrides
docs/Troubleshooting.md the old "Limitations", as symptom → cause → fix per database

For contributors: Contributing, Architecture (now includes the WASM packaging from Design.md, which is removed), Testing, Coverage, Releasing.

Corrections found while checking the docs against the code

  • Types were shown with PostgreSQL's classes for every database. SQLite dates / timestamps are String and booleans Integer; MySQL booleans are Integer; PostgreSQL time is a String. The type tables are now per database, taken from each driver's mapping.
  • The generated Gemfile already has gem 'timeout', '>= 0.4' for a rubyVersion below 3.3; the docs told users to add it.
  • Architecture.md: the generated-code snippet nested row classes inside QuerySql; they are module-level, as in examples/pg.
  • Coverage.md: a sentence in the middle split the table; one row had missing columns; three rows had the wrong "not applicable" database. Rows are now grouped by topic (their content is unchanged).
  • MySQL enum modules are named after table and column (ExtendedBiosBioType), which was not documented.

Not docs-only

scripts/docs/generate_examples.rb changed (intro and link layout of docs/Examples.md), so CI runs. No generator, examples/ or test changes.

Verification

  • test/coverage_map_test.rb passes; every relative link and anchor in the README and docs/ was checked with a script.
  • Not run: the rest of the unit suite, RuboCop, Steep and the end-to-end suites (nothing they cover changed).

Review notes

  • The Troubleshooting fix for SQLite NUMERIC (call to_f, or declare Numeric with overrides) is my suggestion, not a tested behavior.
  • Releasing.md is unchanged.

Suggested label: documentation.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FskpZEyJE4jgCmz45fQCXg

README is now a short landing page (pitch, quick start, feature tables,
a 'Good to know' summary). The full options, query, type, transaction,
connection and limitation details moved unchanged in substance to
docs/Options|Queries|Types|Transactions|Limitations|Generated-Code.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FskpZBzDwZ1DHnoWBrmEt8
…ome a symptom-based Troubleshooting guide

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FskpZBzDwZ1DHnoWBrmEt8
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FskpZBzDwZ1DHnoWBrmEt8
…ording after the README split

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FskpZBzDwZ1DHnoWBrmEt8
… merge Design into Architecture

- README: short overview; the type table is now per database (SQLite dates and
  booleans, MySQL booleans and JSON were shown with PostgreSQL's types)
- Generated-Code: files, query class, rows, naming rules (moved from Types),
  logging, RuboCop / Steep notes
- Connections: split out of Transactions (pools, shared connections, forks,
  fibers, lost connections, prepared statements)
- Transactions: basics, isolation, tx, failures; the generated Gemfile already
  pins timeout >= 0.4 for rubyVersion below 3.3
- Architecture absorbs Design (WASM packaging, design decisions); the snippet
  matches examples/pg (rows are module-level classes)
- Testing: tables instead of run-on paragraphs
- Coverage: rows grouped by topic; fixed a row with missing columns and
  mislabelled 'not applicable' cells
- Examples: intro and clearer links (generator script updated)

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FskpZEyJE4jgCmz45fQCXg
@doron050
doron050 merged commit 57a9b21 into main Nov 12, 2026
42 checks passed
@doron050
doron050 deleted the claude/fervent-mendel-03oiy5 branch November 12, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants