Class: Coradoc::CoreModel::FrontmatterBlock::SchemaResolver::Registry
- Inherits:
-
Object
- Object
- Coradoc::CoreModel::FrontmatterBlock::SchemaResolver::Registry
- Defined in:
- lib/coradoc/core_model/frontmatter/schema_resolver.rb
Overview
Registry of URL → resolver class.
Constant Summary collapse
- DEFAULT =
new
Instance Method Summary collapse
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
- #lookup(schema_url) ⇒ Object
- #register(schema_url, resolver_class) ⇒ Object
- #registered?(schema_url) ⇒ Boolean
-
#validate(block) ⇒ Object
Returns array of ValidationError structs.
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
26 27 28 |
# File 'lib/coradoc/core_model/frontmatter/schema_resolver.rb', line 26 def initialize @resolvers = {} end |
Instance Method Details
#lookup(schema_url) ⇒ Object
34 35 36 |
# File 'lib/coradoc/core_model/frontmatter/schema_resolver.rb', line 34 def lookup(schema_url) @resolvers[schema_url.to_s] end |
#register(schema_url, resolver_class) ⇒ Object
30 31 32 |
# File 'lib/coradoc/core_model/frontmatter/schema_resolver.rb', line 30 def register(schema_url, resolver_class) @resolvers[schema_url.to_s] = resolver_class end |
#registered?(schema_url) ⇒ Boolean
38 39 40 |
# File 'lib/coradoc/core_model/frontmatter/schema_resolver.rb', line 38 def registered?(schema_url) @resolvers.key?(schema_url.to_s) end |
#validate(block) ⇒ Object
Returns array of ValidationError structs. Empty if no schema, no resolver, or validation passes.
44 45 46 47 48 49 50 51 52 |
# File 'lib/coradoc/core_model/frontmatter/schema_resolver.rb', line 44 def validate(block) return [] unless block.is_a?(FrontmatterBlock) return [] if block.schema.nil? resolver_class = lookup(block.schema) return [] unless resolver_class resolver_class.new.validate(block) end |