Commit 5997b04
committed
ogar-from-rails: DO arm mirrors controllers verbatim + re-export (no singulariser)
Delete the singulariser entirely. It was inventing a namespace out of
string-munged controller names — arbitrary, lossy (English plurals aren't
invertible by heuristic: `Searches → searche`, `Capabilities → capabilitie`),
and irreversible. The controller's own name IS the faithful identity; the
semantics live in the classid, not in a prettified string.
The DO arm is now a faithful `controllers` module that mirrors
`app/controllers/` 1:1:
- `container_of` snake-cases the controller stem **verbatim**, no
singularisation: `NodesController → nodes`, `MapsController → maps`,
`SearchesController → searches`, `ChangesetCommentsController →
changeset_comments`. Reversible; matches Rails' own resource routes.
- `controller_to_model` likewise stops singularising (returns `Nodes`).
- render_osm emits `generated/controllers.rs` (was `actions.rs`); osm-domain
does `#[path=…] pub mod controllers;` + `pub use controllers::*;`, so both
`osm_domain::controllers::nodes::show(input)` and the re-exported
`osm_domain::nodes::show(input)` resolve.
The (part_of:is_a) rail + the `is_a` archetype axis (index→list, …) are
unchanged — only the invented singular container naming is gone. Regenerated
the parked snapshot; osm-domain builds; `container_of` verbatim test replaces
the deleted singulariser test.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYvNjD8M8LMNYbRy3gq2FP1 parent 5d29a22 commit 5997b04
6 files changed
Lines changed: 934 additions & 855 deletions
File tree
- .claude/harvest/osm-website-rs
- crates/osm-domain/src
- generated
- harvest
- crates
- ogar-from-rails
- examples
- src
- ogar-render-askama/examples
0 commit comments