Module: Hecks

Defined in:
lib/hecks/ports.rb,
lib/hecks.rb,
lib/hecks/ir.rb,
lib/hecks/fqn.rb,
lib/hecks/forms.rb,
lib/hecks/facade.rb,
lib/hecks/naming.rb,
lib/hecks/router.rb,
lib/hecks/codemod.rb,
lib/hecks/freezer.rb,
lib/hecks/fuzzing.rb,
lib/hecks/grammar.rb,
lib/hecks/literal.rb,
lib/hecks/runtime.rb,
lib/hecks/version.rb,
lib/hecks/adapters.rb,
lib/hecks/bluebook.rb,
lib/hecks/query_ir.rb,
lib/hecks/behaviors.rb,
lib/hecks/construct.rb,
lib/hecks/forms/app.rb,
lib/hecks/framework.rb,
lib/hecks/projector.rb,
lib/hecks/rendering.rb,
lib/hecks/forms/html.rb,
lib/hecks/forms/page.rb,
lib/hecks/storehouse.rb,
lib/hecks/vocabulary.rb,
lib/hecks/ports/agent.rb,
lib/hecks/ports/clock.rb,
lib/hecks/ports/query.rb,
lib/hecks/projections.rb,
lib/hecks/behaviors/ir.rb,
lib/hecks/bluebook/dsl.rb,
lib/hecks/forms/params.rb,
lib/hecks/behaviors/dsl.rb,
lib/hecks/doc/reference.rb,
lib/hecks/facade/handle.rb,
lib/hecks/ports/loading.rb,
lib/hecks/runtime/event.rb,
lib/hecks/runtime/value.rb,
lib/hecks/bluebook/query.rb,
lib/hecks/facade/surface.rb,
lib/hecks/fuzzing/replay.rb,
lib/hecks/grammar/evolve.rb,
lib/hecks/projections/ir.rb,
lib/hecks/runtime/caller.rb,
lib/hecks/runtime/errors.rb,
lib/hecks/runtime/loader.rb,
lib/hecks/adapters/driven.rb,
lib/hecks/behaviors/rspec.rb,
lib/hecks/bluebook/entity.rb,
lib/hecks/bluebook/policy.rb,
lib/hecks/facade/cli_door.rb,
lib/hecks/runtime/routing.rb,
lib/hecks/behaviors/runner.rb,
lib/hecks/bluebook/chapter.rb,
lib/hecks/bluebook/command.rb,
lib/hecks/bluebook/hexagon.rb,
lib/hecks/facade/json_door.rb,
lib/hecks/ports/extraction.rb,
lib/hecks/ports/projection.rb,
lib/hecks/projections/oidc.rb,
lib/hecks/projector/target.rb,
lib/hecks/runtime/identity.rb,
lib/hecks/runtime/instance.rb,
lib/hecks/runtime/registry.rb,
lib/hecks/bluebook/assembly.rb,
lib/hecks/facade/cli_runner.rb,
lib/hecks/forms/field_shape.rb,
lib/hecks/ports/persistence.rb,
lib/hecks/ports/persistence.rb,
lib/hecks/projections/model.rb,
lib/hecks/projections/shape.rb,
lib/hecks/adapters/driven/d1.rb,
lib/hecks/bluebook/aggregate.rb,
lib/hecks/bluebook/attribute.rb,
lib/hecks/bluebook/lifecycle.rb,
lib/hecks/bluebook/reference.rb,
lib/hecks/forms/record_table.rb,
lib/hecks/fuzzing/properties.rb,
lib/hecks/projector/exporter.rb,
lib/hecks/runtime/boot_gates.rb,
lib/hecks/runtime/dispatcher.rb,
lib/hecks/bluebook/expression.rb,
lib/hecks/bluebook/read_model.rb,
lib/hecks/bluebook/smoke_test.rb,
lib/hecks/embryonaut_bluebook.rb,
lib/hecks/forms/port_argument.rb,
lib/hecks/ports/agent/answers.rb,
lib/hecks/ports/authorization.rb,
lib/hecks/query_specification.rb,
lib/hecks/adapters/driven/heki.rb,
lib/hecks/bluebook/domain_port.rb,
lib/hecks/bluebook/model_check.rb,
lib/hecks/bluebook/synthesizer.rb,
lib/hecks/bluebook/translation.rb,
lib/hecks/forms/field_renderer.rb,
lib/hecks/forms/index_renderer.rb,
lib/hecks/ports/access_control.rb,
lib/hecks/ports/authentication.rb,
lib/hecks/ports/query/ordering.rb,
lib/hecks/projections/diagrams.rb,
lib/hecks/runtime/interpreting.rb,
lib/hecks/runtime/tenant_check.rb,
lib/hecks/runtime/tenant_scope.rb,
lib/hecks/adapters/driven/prism.rb,
lib/hecks/bluebook/value_object.rb,
lib/hecks/forms/record_renderer.rb,
lib/hecks/fuzzing/isolated_boot.rb,
lib/hecks/ports/query/in_memory.rb,
lib/hecks/projections/reference.rb,
lib/hecks/runtime/command_rules.rb,
lib/hecks/runtime/rebuild_sweep.rb,
lib/hecks/runtime/reference_hop.rb,
lib/hecks/adapters/driven/folder.rb,
lib/hecks/adapters/driven/lambda.rb,
lib/hecks/adapters/driven/memory.rb,
lib/hecks/adapters/driven/sqlite.rb,
lib/hecks/behaviors/expectations.rb,
lib/hecks/bluebook/dsl/malformed.rb,
lib/hecks/bluebook/dsl/word_gate.rb,
lib/hecks/facade/command_request.rb,
lib/hecks/facade/surface/chapter.rb,
lib/hecks/projections/statements.rb,
lib/hecks/projections/vocabulary.rb,
lib/hecks/projector/ir_projector.rb,
lib/hecks/runtime/aggregate_lock.rb,
lib/hecks/runtime/entity_element.rb,
lib/hecks/runtime/value/coercion.rb,
lib/hecks/bluebook/assembly/build.rb,
lib/hecks/bluebook/assembly/marks.rb,
lib/hecks/bluebook/dsl/const_shim.rb,
lib/hecks/bluebook/meta_validator.rb,
lib/hecks/bluebook/pattern_subset.rb,
lib/hecks/bluebook/project_loader.rb,
lib/hecks/forms/reference_options.rb,
lib/hecks/fuzzing/value_generator.rb,
lib/hecks/projector/cli_projector.rb,
lib/hecks/runtime/refusal_wording.rb,
lib/hecks/runtime/value/admission.rb,
lib/hecks/adapters/driven/postgres.rb,
lib/hecks/bluebook/behaviour/query.rb,
lib/hecks/bluebook/process_manager.rb,
lib/hecks/forms/value_object_shape.rb,
lib/hecks/ports/persistence/plugin.rb,
lib/hecks/projections/parser_table.rb,
lib/hecks/projector/docs_projector.rb,
lib/hecks/runtime/capability_graph.rb,
lib/hecks/runtime/saga_interpreter.rb,
lib/hecks/bluebook/behaviour/entity.rb,
lib/hecks/bluebook/behaviour/policy.rb,
lib/hecks/bluebook/behaviour/traits.rb,
lib/hecks/bluebook/dsl/port_builder.rb,
lib/hecks/bluebook/project_register.rb,
lib/hecks/forms/query_form_renderer.rb,
lib/hecks/ports/identity_assignment.rb,
lib/hecks/ports/identity_generation.rb,
lib/hecks/ports/identity_resolution.rb,
lib/hecks/runtime/query_interpreter.rb,
lib/hecks/runtime/remote_dispatcher.rb,
lib/hecks/bluebook/assembly/contract.rb,
lib/hecks/bluebook/behaviour/chapter.rb,
lib/hecks/bluebook/behaviour/command.rb,
lib/hecks/bluebook/behaviour/hexagon.rb,
lib/hecks/bluebook/dsl/binding_proxy.rb,
lib/hecks/bluebook/dsl/query_builder.rb,
lib/hecks/bluebook/dsl/world_builder.rb,
lib/hecks/bluebook/project_discovery.rb,
lib/hecks/fuzzing/sequence_generator.rb,
lib/hecks/router/namespace_installer.rb,
lib/hecks/runtime/entity_interpreter.rb,
lib/hecks/runtime/policy_interpreter.rb,
lib/hecks/adapters/driven/claude_code.rb,
lib/hecks/bluebook/assembly/contracts.rb,
lib/hecks/bluebook/dsl/entity_builder.rb,
lib/hecks/bluebook/dsl/policy_builder.rb,
lib/hecks/bluebook/dsl/rule_reference.rb,
lib/hecks/forms/command_form_renderer.rb,
lib/hecks/ports/persistence/execution.rb,
lib/hecks/projector/narrate_projector.rb,
lib/hecks/runtime/command_interpreter.rb,
lib/hecks/runtime/dependency_planning.rb,
lib/hecks/runtime/reaction_invocation.rb,
lib/hecks/adapters/driven/heki/journal.rb,
lib/hecks/adapters/driven/sqlite/codec.rb,
lib/hecks/adapters/driven/system_clock.rb,
lib/hecks/bluebook/behaviour/aggregate.rb,
lib/hecks/bluebook/behaviour/attribute.rb,
lib/hecks/bluebook/behaviour/lifecycle.rb,
lib/hecks/bluebook/dsl/adapter_builder.rb,
lib/hecks/bluebook/dsl/command_builder.rb,
lib/hecks/bluebook/expression/ast_json.rb,
lib/hecks/bluebook/expression/resolver.rb,
lib/hecks/bluebook/meta_validator/plan.rb,
lib/hecks/projections/model/deviations.rb,
lib/hecks/query_specification/hop_path.rb,
lib/hecks/adapters/driven/heki/snapshot.rb,
lib/hecks/adapters/driven/lambda/client.rb,
lib/hecks/bluebook/assembly/specializer.rb,
lib/hecks/bluebook/behaviour/read_model.rb,
lib/hecks/bluebook/dsl/bluebook_builder.rb,
lib/hecks/bluebook/dsl/generic_dispatch.rb,
lib/hecks/bluebook/expression/evaluator.rb,
lib/hecks/bluebook/meta_validator/judge.rb,
lib/hecks/facade/surface/aggregate_door.rb,
lib/hecks/ports/persistence/append_only.rb,
lib/hecks/ports/persistence/plugins/era.rb,
lib/hecks/runtime/registry/verification.rb,
lib/hecks/runtime/saga_pending_dispatch.rb,
lib/hecks/adapters/driven/postgres/codec.rb,
lib/hecks/bluebook/behaviour/domain_port.rb,
lib/hecks/bluebook/dsl/aggregate_builder.rb,
lib/hecks/bluebook/dsl/hecksagon_builder.rb,
lib/hecks/bluebook/dsl/lifecycle_builder.rb,
lib/hecks/bluebook/meta_validator/shapes.rb,
lib/hecks/query_specification/common/dsl.rb,
lib/hecks/query_specification/field_path.rb,
lib/hecks/runtime/command_rules/emission.rb,
lib/hecks/runtime/read_model_interpreter.rb,
lib/hecks/adapters/driven/heki/saga_store.rb,
lib/hecks/bluebook/behaviour/value_object.rb,
lib/hecks/bluebook/dsl/read_model_builder.rb,
lib/hecks/fuzzing/invalid_value_generator.rb,
lib/hecks/bluebook/dsl/attribute_collector.rb,
lib/hecks/bluebook/dsl/domain_port_builder.rb,
lib/hecks/bluebook/dsl/translation_builder.rb,
lib/hecks/bluebook/meta_validator/readings.rb,
lib/hecks/ports/persistence/binding_policy.rb,
lib/hecks/ports/persistence/remote_runtime.rb,
lib/hecks/runtime/command_rules/arithmetic.rb,
lib/hecks/runtime/command_rules/references.rb,
lib/hecks/adapters/driven/identity_registry.rb,
lib/hecks/adapters/driven/sql_query_builder.rb,
lib/hecks/adapters/driven/sqlite/projection.rb,
lib/hecks/bluebook/dsl/identity_declaration.rb,
lib/hecks/bluebook/dsl/value_object_builder.rb,
lib/hecks/fuzzing/sequence_generator/picker.rb,
lib/hecks/ports/persistence/null_saga_store.rb,
lib/hecks/runtime/registry/saga_persistence.rb,
lib/hecks/runtime/value/invariant_violation.rb,
lib/hecks/adapters/driven/in_memory_ordering.rb,
lib/hecks/bluebook/behaviour/process_manager.rb,
lib/hecks/bluebook/expression/canonical_form.rb,
lib/hecks/bluebook/meta_validator/port_judge.rb,
lib/hecks/fuzzing/sequence_generator/catalog.rb,
lib/hecks/query_specification/common/options.rb,
lib/hecks/runtime/port_operation_interpreter.rb,
lib/hecks/adapters/driven/mock_stripe_adapter.rb,
lib/hecks/bluebook/dsl/port_operation_builder.rb,
lib/hecks/bluebook/meta_validator/syntax_boot.rb,
lib/hecks/bluebook/meta_validator/world_judge.rb,
lib/hecks/query_specification/common/order_by.rb,
lib/hecks/runtime/command_rules/admissibility.rb,
lib/hecks/runtime/command_rules/authorization.rb,
lib/hecks/bluebook/assembly/aggregate_assembly.rb,
lib/hecks/bluebook/dsl/process_manager_builder.rb,
lib/hecks/ports/persistence/repository_factory.rb,
lib/hecks/runtime/saga_interpreter/correlation.rb,
lib/hecks/adapters/driven/google_authentication.rb,
lib/hecks/adapters/driven/sqlite/schema_builder.rb,
lib/hecks/bluebook/meta_validator/adapter_judge.rb,
lib/hecks/ports/persistence/plugins/era/lineage.rb,
lib/hecks/query_specification/common/comparison.rb,
lib/hecks/query_specification/common/limit_spec.rb,
lib/hecks/adapters/driven/secure_random_identity.rb,
lib/hecks/bluebook/meta_validator/reconstruction.rb,
lib/hecks/fuzzing/bounded_exhaustive_expressions.rb,
lib/hecks/query_specification/common/comparators.rb,
lib/hecks/query_specification/common/cursor_spec.rb,
lib/hecks/query_specification/common/null_policy.rb,
lib/hecks/query_specification/common/offset_spec.rb,
lib/hecks/adapters/driven/postgres/schema_builder.rb,
lib/hecks/fuzzing/sequence_generator/step_builder.rb,
lib/hecks/ports/persistence/plugins/era/era_check.rb,
lib/hecks/ports/persistence/plugins/era/era_guard.rb,
lib/hecks/query_specification/common/where_clause.rb,
lib/hecks/adapters/driven/governance_authorization.rb,
lib/hecks/ports/persistence/plugins/era/era_tamper.rb,
lib/hecks/bluebook/meta_validator/translation_judge.rb,
lib/hecks/ports/persistence/plugins/era/translation.rb,
lib/hecks/query_specification/common/null_semantics.rb,
lib/hecks/runtime/command_interpreter/argument_gate.rb,
lib/hecks/fuzzing/sequence_generator/outcome_tracker.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era.rb,
lib/hecks/query_specification/common/inspection_spec.rb,
lib/hecks/ports/persistence/plugins/era/storage_shape.rb,
lib/hecks/query_specification/read_model/specification.rb,
lib/hecks/runtime/command_interpreter/mutation_applier.rb,
lib/hecks/bluebook/expression/resolver/block_predicates.rb,
lib/hecks/query_specification/common/authorization_spec.rb,
lib/hecks/ports/persistence/plugins/era/translation/audit.rb,
lib/hecks/ports/persistence/plugins/era/era_guard/shape_diff.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage.rb,
lib/hecks/ports/persistence/plugins/era/translation/reattest.rb,
lib/hecks/ports/persistence/plugins/era/translation/scaffold.rb,
lib/hecks/ports/persistence/plugins/era/translation/rule_compiler.rb,
lib/hecks/ports/persistence/plugins/era/translation/audit/layer_one.rb,
lib/hecks/ports/persistence/plugins/era/translation/audit/layer_two.rb,
lib/hecks/ports/persistence/plugins/era/translation/scaffold/differ.rb,
lib/hecks/ports/persistence/plugins/era/translation/scaffold/writer.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage_manager.rb,
lib/hecks/ports/persistence/plugins/era/translation/scaffold/renderer.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage/era_store.rb,
lib/hecks/ports/persistence/plugins/era/translation/audit/unfed_report.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage/tail_merge.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage/field_cache.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage/provisioning.rb,
lib/hecks/ports/persistence/plugins/era/translation/audit/approval_digest.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage/head_compiler.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage_manager/minter.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage/mint_transaction.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage/resumable_backfill.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage/transform_installer.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage_manager/era_resolver.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage_manager/coverage_check.rb,
lib/hecks/ports/persistence/plugins/era/postgres_era/lineage_manager/merge_coordinator.rb

Overview

HAND-WRITTEN — the block-predicate/find family of the leaf grammar (Bluebook::Expression::Resolver's own .all?/.any?/.none?/ .find suffixes), split into this sibling file to keep resolver.rb under Metrics/ModuleLength (350) : this reopens the SAME Resolver module resolver.rb defines, the long nested module A; module B; ... form (not the compact A::B form) so bare constant/method lookups here (EvaluationError, Evaluator, describe, unwrap_scalar, walk_path) resolve exactly the way they do inside resolver.rb itself — this is one module, split across two files, not two modules. See resolver.rb's own header for the grammar this belongs to; see each struct/method below for its own "why".

Defined Under Namespace

Modules: Adapters, Behaviors, Bluebook, Codemod, Construct, Doc, EmbryonautBluebook, Facade, Forms, Framework, Freezer, Fuzzing, Grammar, IR, Literal, Namespace, Naming, Ports, Projections, Projector, QueryIR, QuerySpecification, Rendering, Runtime, Storehouse, Translation, Vocabulary Classes: Fqn, LoadOutsideBoot, Router, StateRef

Constant Summary collapse

VERSION =

ISOLATED, ON PURPOSE — the gemspec reads this file directly rather than require_relative "lib/hecks" (the whole framework), specifically so evaluating the gemspec never triggers ANY of this gem's own dependencies (prism among them) before Bundler has even resolved what to install. A real, live chicken-and-egg bug caught deploying to a Ruby version that doesn't bundle prism for free (AWS Lambda's ruby3.2): the gemspec's own require_relative "lib/hecks" pulled in adapters/driven/prism.rb's unconditional require "prism", which failed before Bundler ever read what the gemspec itself declared as a dependency — declaring it there, or even in the consuming Gemfile, never closed the gap, because gemspec evaluation happens before anything Bundler resolves is actually loadable yet.

"1.0.2"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.current_registryObject (readonly)

Returns the value of attribute current_registry.



41
42
43
# File 'lib/hecks.rb', line 41

def current_registry
  @current_registry
end

Class Method Details

.adapter(name, &block) ⇒ Object



124
# File 'lib/hecks.rb', line 124

def adapter(name, &block)   = collect(:add_adapter, Bluebook::DSL::AdapterBuilder.build(name, &block))

.as_caller(role:, actor_id: nil, as_of: nil, scope: nil, &block) ⇒ Object

Bind who is dispatching for the duration of the block — checked against a command's declared role, if it has one. Unbound (the default), a command's role stays exactly what it is without this: decoration.

actor_id is OPTIONAL — a caller naming only a role is checked by string equality against the command's own role, exactly as before. A caller that also names WHO it is lets the check run against a real Governance RoleAssignment instead, once the command's domain has Governance attached — see CommandRules::Authorization's own header.

as_of and scope are OPTIONAL too, same shape — see Runtime.as_caller's own header for what each does.



94
95
96
# File 'lib/hecks.rb', line 94

def as_caller(role:, actor_id: nil, as_of: nil, scope: nil, &block)
  Runtime.as_caller(role: role, actor_id: actor_id, as_of: as_of, scope: scope, &block)
end

.behaviors(name) ⇒ Object

Hecks.behaviors "Name" do ... end — deliberately NOT routed through collect the way bluebook/hecksagon/world are: a behaviors suite is a test artifact a runner reads on demand, never a thing a live domain boot needs, so it has no business landing in Runtime.current_registry.



16
17
18
19
20
21
22
23
# File 'lib/hecks/behaviors.rb', line 16

def behaviors(name, &)
  path = Behaviors.loading_path or
    raise Behaviors::LoadOutsideRunner,
          "Hecks.behaviors called outside Hecks::Behaviors.run(path) — " \
          "a .behaviors file is only ever loaded by the behaviors runner"

  Behaviors.last_suite = Behaviors::BehaviorsBuilder.build(name, source_path: path, &)
end

.bluebook(name, version: nil, &block) ⇒ Object



98
99
100
# File 'lib/hecks.rb', line 98

def bluebook(name, version: nil, &block)
  collect(:add_bluebook, Bluebook::DSL::BluebookBuilder.build(name, version: version, &block))
end

.boot(path, shared: nil, install_facade: true, environment: nil) ⇒ Object

The loading words below collect into the registry the RUNTIME is holding open ; booting and that ambient state belong to the runtime layer, so this module is their facade and Hecks::Runtime is where they live. install_facade: — see Runtime::Loader.boot. Defaults on; a caller that only dispatches by FQN string can skip the global sugar.

environment: — RECOVERED, not new: this parameter (and the environments/<name>.hecksagon / .world overlay it loads — see Adapters::Folder#load_domain) existed on a prior commit of this repo (933d1dd), was vendored out to a real consumer (lifeadelics/domain), and was then lost from this repo's own history (no branch here reaches that commit). Ported forward from the consumer's vendor snapshot — the only surviving copy — and generalized: the original only loaded a .hecksagon overlay; this also loads a same-named .world overlay, both merged into the base rather than replacing it (Registry#add_hecksagon / #add_world). hecks never reads ENV itself — a caller resolves its own env var name and passes the resulting string straight through, e.g. Hecks.boot(path, environment: ENV.fetch("MYAPP_ENV", "development")).



64
65
66
# File 'lib/hecks.rb', line 64

def boot(path, shared: nil, install_facade: true, environment: nil)
  Runtime.boot(path, shared: shared, install_facade: install_facade, environment: environment)
end

.boot_files(paths, shared: nil, install_facade: true, environment: nil) ⇒ Object

paths — an explicit list of files to boot (a .bluebook, its .hecksagon, optionally a .world), loaded in place from wherever they actually live — see Runtime::Loader.boot_files's own header for why this exists beside boot rather than as a special case of it.



72
73
74
# File 'lib/hecks.rb', line 72

def boot_files(paths, shared: nil, install_facade: true, environment: nil)
  Runtime.boot_files(paths, shared: shared, install_facade: install_facade, environment: environment)
end

.data_translation(name, from:, to:, &block) ⇒ Object



127
128
129
# File 'lib/hecks.rb', line 127

def data_translation(name, from:, to:, &block)
  collect(:add_translation, Bluebook::DSL::TranslationBuilder.build(name, from: from, to: to, &block))
end

.hecksagon(name, &block) ⇒ Object



102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/hecks.rb', line 102

def hecksagon(name, &block) = collect(:add_hecksagon, Bluebook::DSL::HecksagonBuilder.build(name, &block))
# REPOINTED TO DomainPortBuilder — the migration DomainPort's own
# class comment names as its goal, now landed for the top-level
# `.port` file callers too (the aggregate-scoped `Thing.port(...)`,
# binding_proxy.rb, already went through this builder). Every real
# `.port` file only ever spells `verb`/`signal` (no `.port` file
# declares operations — that's DomainPort's own newer shape), and
# DomainPortBuilder's own bare-verb branch produces the exact same
# `Port` object PortBuilder itself did (dsl_spec.rb's own byte-
# identity check) — a pure repoint, no behavior change for any
# existing caller reading `.verb`/`.signal` off what comes back.
#
# `legacy_bare_port: true` — the ONE real semantic gap this repoint
# would otherwise open: `PortBuilder#build` never refused a
# completely empty build (no verb, no signal even), a real shape
# dsl_spec.rb's own "a port" tests exercise (`signal`-only, no
# `verb`). `DomainPortBuilder`'s own "declares no verb and no
# operations" refusal is real and correct for its OTHER two callers
# (`BindingProxy#port`, `HecksagonBuilder#port_impl`) — only this,
# the literal top-level `.port` file entry point, keeps the older,
# looser rule (see `DomainPortBuilder#initialize`'s own comment).

.port(name, &block) ⇒ Object

REPOINTED TO DomainPortBuilder — the migration DomainPort's own class comment names as its goal, now landed for the top-level .port file callers too (the aggregate-scoped Thing.port(...), binding_proxy.rb, already went through this builder). Every real .port file only ever spells verb/signal (no .port file declares operations — that's DomainPort's own newer shape), and DomainPortBuilder's own bare-verb branch produces the exact same Port object PortBuilder itself did (dsl_spec.rb's own byte- identity check) — a pure repoint, no behavior change for any existing caller reading .verb/.signal off what comes back.

legacy_bare_port: true — the ONE real semantic gap this repoint would otherwise open: PortBuilder#build never refused a completely empty build (no verb, no signal even), a real shape dsl_spec.rb's own "a port" tests exercise (signal-only, no verb). DomainPortBuilder's own "declares no verb and no operations" refusal is real and correct for its OTHER two callers (BindingProxy#port, HecksagonBuilder#port_impl) — only this, the literal top-level .port file entry point, keeps the older, looser rule (see DomainPortBuilder#initialize's own comment).



123
# File 'lib/hecks.rb', line 123

def port(name, &block) = collect(:add_port, Bluebook::DSL::DomainPortBuilder.build(name, legacy_bare_port: true, &block))

.with_registry(registry, &block) ⇒ Object



76
# File 'lib/hecks.rb', line 76

def with_registry(registry, &block) = Runtime.with_registry(registry, &block)

.world(name, &block) ⇒ Object



125
# File 'lib/hecks.rb', line 125

def world(name, &block)     = collect(:add_world, Bluebook::DSL::WorldBuilder.build(name, &block))