Class: Rng::ExternalRefResolver
- Inherits:
-
Object
- Object
- Rng::ExternalRefResolver
- Defined in:
- lib/rng/external_ref_resolver.rb
Overview
Resolves external href references in RNG schemas.
This class handles two types of external references:
-
‘<include href=“uri”/>` at grammar level - merges definitions from external grammar
-
‘<externalRef href=“uri”/>` at pattern level - replaces ref with external pattern
Defined Under Namespace
Classes: ExternalRefResolutionError
Instance Method Summary collapse
-
#initialize(grammar, location: nil) ⇒ ExternalRefResolver
constructor
Initialize the resolver.
-
#resolve ⇒ Grammar
Resolve all external references in the grammar.
Constructor Details
#initialize(grammar, location: nil) ⇒ ExternalRefResolver
Initialize the resolver
29 30 31 32 |
# File 'lib/rng/external_ref_resolver.rb', line 29 def initialize(grammar, location: nil) @grammar = grammar @location = location end |
Instance Method Details
#resolve ⇒ Grammar
Resolve all external references in the grammar
37 38 39 40 |
# File 'lib/rng/external_ref_resolver.rb', line 37 def resolve visited_files = Set.new build_resolved_grammar(@grammar, @location, visited_files) end |