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 IR that each rendered IR their own way is exactly the drift this namespace exists to avoid.

Projector::IRProjector