Sha256: bd31b8895c473987fa8a696df26d455c06d1ae469d4db7af9d1be595cb608509
Contents?: true
Size: 996 Bytes
Versions: 1
Compression:
Stored size: 996 Bytes
Contents
# frozen_string_literal: true require_relative "nestable" module ROM module Registries # @api public class Schemas < Root prepend Nestable # Resolve relation's canonical schema # # @param provider [#config] # @return [Schema] # # @api public def canonical(provider) schema = scoped(provider.config.component.id).fetch(provider.config.component.dataset) { fetch(provider.config.component.id) } if schema.is_a?(self.class) unscoped.fetch(provider.config.component.id) else schema end end # @api private def unscoped root.schemas end # @api private def define_component(**options) return super unless provider_type == :relation comp = components.get(:schemas, relation: config.component.id, abstract: false) comp || super(**options, relation_id: config.component.id) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rom-6.0.0.alpha1 | lib/rom/registries/schemas.rb |