Class: Glossarist::Validation::Rules::ConceptContext
- Inherits:
-
Object
- Object
- Glossarist::Validation::Rules::ConceptContext
- Defined in:
- lib/glossarist/validation/rules/concept_context.rb
Overview
Shared context for concept-scoped validation rules.
Provides lazy-memoized access to extracted references so that multiple rules examining the same concept share one extraction pass (DRY, single source of truth). Rules ask the context for references rather than instantiating their own ReferenceExtractor.
In V3, n-ary relations (PartitiveHyperedge, GenericHyperedge) are
per-file (see Glossarist::V3::RelationLoader). Each concept's
relations are looked up via the relations lookup passed here.
Pass an explicit relations: list when constructing the context
— the loader does not run on demand so the validator behaviour
is fully deterministic given the load.
Instance Attribute Summary collapse
-
#collection_context ⇒ Object
readonly
Returns the value of attribute collection_context.
-
#concept ⇒ Object
readonly
Returns the value of attribute concept.
-
#file_name ⇒ Object
readonly
Returns the value of attribute file_name.
-
#relations ⇒ Object
readonly
Returns the value of attribute relations.
Instance Method Summary collapse
- #asset_index ⇒ Object
-
#asset_references ⇒ Object
All asset references (NonVerbRep, GraphicalSymbol) extracted from the concept's model attributes.
- #bibliography_index ⇒ Object
- #concept_id ⇒ Object
- #concept_ids ⇒ Object
- #declared_languages ⇒ Object
- #gcr? ⇒ Boolean
-
#initialize(concept, file_name:, collection_context:, relations: []) ⇒ ConceptContext
constructor
A new instance of ConceptContext.
- #metadata ⇒ Object
-
#references ⇒ Object
All references extracted from the concept's text fields (definitions, notes, examples) via {...} mentions, <
>, and image::...[] references.
Constructor Details
#initialize(concept, file_name:, collection_context:, relations: []) ⇒ ConceptContext
Returns a new instance of ConceptContext.
22 23 24 25 26 27 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 22 def initialize(concept, file_name:, collection_context:, relations: []) @concept = concept @file_name = file_name @collection_context = collection_context @relations = Array(relations) end |
Instance Attribute Details
#collection_context ⇒ Object (readonly)
Returns the value of attribute collection_context.
20 21 22 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 20 def collection_context @collection_context end |
#concept ⇒ Object (readonly)
Returns the value of attribute concept.
20 21 22 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 20 def concept @concept end |
#file_name ⇒ Object (readonly)
Returns the value of attribute file_name.
20 21 22 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 20 def file_name @file_name end |
#relations ⇒ Object (readonly)
Returns the value of attribute relations.
20 21 22 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 20 def relations @relations end |
Instance Method Details
#asset_index ⇒ Object
55 56 57 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 55 def asset_index @collection_context.asset_index end |
#asset_references ⇒ Object
All asset references (NonVerbRep, GraphicalSymbol) extracted from the concept's model attributes. Memoized — extracted once per concept, shared across all rules.
46 47 48 49 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 46 def asset_references @asset_references ||= ReferenceExtractor.new .extract_asset_refs_from_concept(@concept) end |
#bibliography_index ⇒ Object
51 52 53 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 51 def bibliography_index @collection_context.bibliography_index end |
#concept_id ⇒ Object
29 30 31 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 29 def concept_id @concept.data&.id&.to_s end |
#concept_ids ⇒ Object
59 60 61 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 59 def concept_ids @collection_context.concept_ids end |
#declared_languages ⇒ Object
63 64 65 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 63 def declared_languages @collection_context.declared_languages end |
#gcr? ⇒ Boolean
71 72 73 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 71 def gcr? @collection_context.gcr? end |
#metadata ⇒ Object
67 68 69 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 67 def @collection_context. end |
#references ⇒ Object
All references extracted from the concept's text fields
(definitions, notes, examples) via {...} mentions, <
38 39 40 41 |
# File 'lib/glossarist/validation/rules/concept_context.rb', line 38 def references @references ||= ReferenceExtractor.new .extract_from_managed_concept(@concept) end |