Module: Hecks::Projections
- Defined in:
- lib/hecks/projections.rb,
lib/hecks/projections/ir.rb,
lib/hecks/projections/oidc.rb,
lib/hecks/projections/model.rb,
lib/hecks/projections/shape.rb,
lib/hecks/projections/diagrams.rb,
lib/hecks/projections/reference.rb,
lib/hecks/projections/statements.rb,
lib/hecks/projections/vocabulary.rb,
lib/hecks/projections/parser_table.rb,
lib/hecks/projections/model/deviations.rb
Overview
THE TARGETS A DOMAIN CAN BE PROJECTED INTO, as constants rather than
bare symbols — Pizzas.project(Projections::OIDC).
A constant is worth the namespace for two reasons a Symbol cannot
give: a typo raises NameError at the call site instead of
UnknownProjector at dispatch time, and each target has somewhere to
carry its own documentation and defaults.
Namespaced rather than top-level because IR is already taken —
Hecks::Bluebook is the MODEL (Bluebook::Command, and the
chapter class itself).
Projections::IR is the projection OF that model, a different thing
that would be genuinely confusing under the same bare name.
include Hecks::Projections gets the short spelling where the
extra qualification is noise (bin/ scripts, a console session).
Defined Under Namespace
Modules: Diagrams, Model, OIDC, ParserTable, Reference, Shape, Statements, Vocabulary
Constant Summary collapse
- IR =
The canonical IR, as a constant. The implementation already existed and is already golden-tested (
Projector::IRProjector, registered as:ir) — this only gives it the constant spelling every other target has, by re-registering the SAME module under the same key.Deliberately not a new implementation: two things named
IRthat each rendered IR their own way is exactly the drift this namespace exists to avoid. Projector::IRProjector